Sql 状态所有计数
我有一个如下表(MSSql) 我需要的查询结果如下Sql 状态所有计数,sql,Sql,我有一个如下表(MSSql) 我需要的查询结果如下 Name Status Count ---- ------- ----- kmk Success 2 kmk Fail 0 mvk Success 0 mvk Fail 2 Per Success 1 Per Fail 1 我尝试了groupby,但得到的结果如下:我的查询是 (Select Name,[Status],COUNT([Status]) As Count From Checking group b
Name Status Count
---- ------- -----
kmk Success 2
kmk Fail 0
mvk Success 0
mvk Fail 2
Per Success 1
Per Fail 1
我尝试了groupby
,但得到的结果如下:我的查询是
(Select Name,[Status],COUNT([Status]) As Count From Checking group by [Status],Name)
Name Status Count
---- ------- -----
kmk Success 2
mvk Fail 2
Per Success 1
Per Fail 1
我尝试了很多方法,你能给我一个查询吗。它与sqlite3一起工作,根据您的SQL引擎,您的里程数可能会有所不同:
select
name,
"Success" as status,
sum(case when status = "Success" then 1 else 0 end) as count
from checking group by name
union
select
name,
"Fail" as status,
sum (case when status = "Fail" then 1 else 0 end) as count
from checking group by name;
SQLite3的结果:
kmk|Fail|0
kmk|Success|2
mvk|Fail|2
mvk|Success|0
per|Fail|1
per|Success|1
您应该熟悉GROUPBY子句和COUNT函数。您尝试过什么?显示您的查询。重写您的问题以更好地了解您的表结构我尝试使用group by,但我得到的输出如下:名称状态Res kmk Success 2 mvk Fail 2 mvk Success 1 Per Fail 1 Per Success 1尝试使用包含两种状态(“Success”、“Fail”)的表进行外部联接,和你一样使用你的计数/分组。或者,如果没有其他方法有效,请尝试使用具有唯一名称的笛卡尔乘积和带有状态的两行表。然后,将这个笛卡尔积与您的
检查表连接起来,以获得计数。
kmk|Fail|0
kmk|Success|2
mvk|Fail|2
mvk|Success|0
per|Fail|1
per|Success|1