① 怎样用一句sql,统计表中不同状态的行的个数
select系统名称,
sum(casewhen故障状态='已处理'then1else0end)as已处理个数,
sum(casewhen故障状态='未处理'then1else0end)as未处理个数,
count(*)as总个数
from表名
groupby系统名称
② mysql中如何统计一个数据库中每张表的行数
可以实现
use information_schema;
select table_name,table_rows from tables
where TABLE_SCHEMA = '数据库名'
order by table_rows desc;
查询出来的是每张表的行数
③ sql 查询某个库中的每个表的记录行数
select d.name as 表名,COUNT (*)as 记录 from syscolumns a inner join sysobjects d on a.id = d.id and d.xtype = 'U'
group by d.name
这是sqlserver 实现的,不知道符不符合。不过刚刚验证了一下,不是很对,估计是主键的原因,修改好了再看看
以上语句只能测试出部分,这个存储过程可以实现全部,sqlserver直接执行即可:
create table #temp(Recordcount int ,tableName varchar(30))
declare @tablename varchar(30)
declare @sql varchar(100)
declare @str varchar(30)
declare tablecursor cursor for
select name from sysobjects where xtype='u'
open tablecursor
fetch next from tablecursor into @tablename
while @@fetch_status=0
begin
set @str=@tablename
set @sql='insert into #temp(recordcount,tablename) select count(*),'+''''+@tablename+''''+' from '+@tablename
exec(@sql)
fetch next from tablecursor into @tablename
end
close tablecursor
deallocate tablecursor
select * from #temp drop table #temp
④ sql存储过程. 统计一个表所有行数 ,放到一个局部变量
select count(主键) form 表名
主键数量就是你的表的纪录数 也是行数。
⑤ sql统计行数,但是需要去重中间的重复数据
userId: user id
url: url visited by the user
SELECT userId, COUNT(DISTINCTurl)
FROM tab
GROUP BY userId
ORDER BY COUNT(DISTINCTurl) DESC
(5)sql统计表的行数扩展阅读:
group by 解决重复数据的个数统计适用于各种关系型数据库,如oracle,SQL Server
查询重复的数据
select * from (select v.xh,count(v.xh) num from sms.vehicle v group by v.xh) where num>1;
select v.xh,count(v.xh) num from sms.vehicle v group by v.xh having count(v.xh)=2;
删除重复的数据
create table mayong as (select distinct* from sms.vehicle);
delete from sms.vehicle ;
insert into sms.vehicle select * from mayong;
在oracle中,有个隐藏了自动rowid,里面给每条记录一个唯一的rowid,如果想保留最新的一条记录,就可以利用这个字段,保留重复数据中rowid最大的一条记录就可以了。
下面是查询重复数据的一个例子:
select a.rowid,a.* from 表名 a
where a.rowid != (select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )
⑥ 如何统计sql中所有的表格和行数
SELECT o.name AS "Table Name", i.rowcnt AS "Row Count"
FROM sysobjects o, sysindexes i
WHERE i.id = o.id
AND i.indid IN(0,1)
AND o.xtype = 'u' --只统计用户表
AND o.name <> 'sysdiagrams'
ORDER BY i.rowcnt DESC --按行排降序
COMPUTE SUM(i.rowcnt), count(o.name); --汇总行数,表数
GO
⑦ 如何用SQL语句一次性统计多个表的行数
单个表 select count(1) from [表名]
⑧ sql 统计2个表的行数
select a.*,isnull(b.文章标题,0) from
(select 用户名,count(文章标题) as文章标题 from 表1 group by 用户名) a left join
(select 用户名,count(文章标题) as 文章标题 from 表2 group by 用户名) b on a.用户名=b.用户名
⑨ sql查询语句如何添加一个统计数据行数
具体看你什么数据库了,还有你字段1,字段2,字段3哪个字段是字符类型的。
比如字段3是字符类型:
oracle写法:
SELECT字段1,字段2,字段3FROM打印数据表where打印时间>='2018-09-01'AND打印时间<'2018-09-19'
unionall
selectnull,null,'合计:'||count(*)from打印数据表where打印时间>='2018-09-01'AND打印时间<'2018-09-19'
mysql写法:
SELECT字段1,字段2,字段3FROM打印数据表where打印时间>='2018-09-01'AND打印时间<'2018-09-19'
unionall
selectnull,null,concat('合计:',(cast(count(*)asvarchar)from打印数据表where打印时间>='2018-09-01'AND打印时间<'2018-09-19'
sqlserver写法:
SELECT字段1,字段2,字段3FROM打印数据表where打印时间>='2018-09-01'AND打印时间<'2018-09-19'
unionall
selectnull,null,'合计:'+(cast(count(*)asvarchar)from打印数据表where打印时间>='2018-09-01'AND打印时间<'2018-09-19'
⑩ 如何用SQL语句查询表名和行数
//查询所有表明
select name from sysobjects where xtype='u'
select * from sys.tables
//查询数据库中所有的表名及行数
SELECT a.name, b.rows
FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id
WHERE (a.type = 'u') AND (b.indid IN (0, 1))
ORDER BY a.name,b.rows DESC
//查询所有的标明及空间占用量\行数
select
object_name(id) tablename,
8*reserved/1024 reserved,
rtrim(8*dpages)+'kb' used,
8*(reserved-dpages)/1024 unused,
8*dpages/1024-rows/1024*minlen/1024 free,
rows
--,*
from sysindexes
where indid=1
order by tablename,reserved desc