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