SQL count和case when配合统计给定条件下不重复的记录数
生活随笔
收集整理的這篇文章主要介紹了
SQL count和case when配合统计给定条件下不重复的记录数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Iamlaosong文
1、我們知道,SQL語句中用count函數統計記錄數量,配合distinct關鍵字可以統計非重復的記錄數量。例如:
select count(*), count(city_name), count(distinct city_name) from tb_county?查詢結果是:
2534 ?2534??363增加查詢條件可以查詢不同條件下記錄的數量,例如:
select count(*), count(city_name), count(distinct city_name)from tb_county?where xs_code like '23%'or xs_code like '24%'查詢結果是:
85??85 ?162、如果我們需要統計總記錄數量和某種條件下的數量,可以用sum函數和case when語句配合,例如:
select count(*),sum(casewhen xs_code like '23%' or xs_code like '24%' then1else0end)from tb_county?查詢結果是:
2534 ?853、如果我們需要統計總記錄數量和某種條件下非重復的記錄數量,用上面的sum函數就不行了。這時我們可以用count函數和case when語句配合,滿足條件取字段值,否則為空,因為count函數是不統計空值的,所以可以統計該條件下的記錄數量(和上面的sum函數功能一樣),如果再配合distinct關鍵字,就可以統計該條件下非重復的記錄數量了。例如:
select count(*),count(city_name),count(distinct city_name),count(casewhen xs_code like '23%' or xs_code like '24%' thencity_nameelsenullend),count(distinct casewhen xs_code like '23%' or xs_code like '24%' thencity_nameelsenullend)from tb_county?查詢結果是:
2534 ?2534 ?363 ?85 ?16這個功能在統計中很有用,尤其是我們需要統計去重復的總量和分量的時候。
上面語句中的else還可以不寫,因為默認情況下不寫就是空值。即:
select count(*),count(city_name),count(distinct city_name),count(casewhen xs_code like '23%' or xs_code like '24%' thencity_nameend),count(distinct casewhen xs_code like '23%' or xs_code like '24%' thencity_nameend)from tb_county?轉發:https://blog.csdn.net/iamlaosong/article/details/73930674
?
總結
以上是生活随笔為你收集整理的SQL count和case when配合统计给定条件下不重复的记录数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7优化设置_win7蓝牙怎么打开?
- 下一篇: stata15中文乱码_如何解决 Sta