当前位置:首页 » 编程语言 » sql统计表的行数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql统计表的行数

发布时间: 2022-11-28 23:30:51

① 怎样用一句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