我有一个名为“USAGE”的数据库表,其中包含以下列:
1)“USAGE_NAME”,其可能的值为:A,B。
2)“TAG”,它的可能值是:a)如果“USAGE_NAME”是A,它可以是A1,A2或A3; b)如果USAGE_NAME是B,则为B1,B2或B3。
3)“USED”,它可以是空值(USED)或非空值(USED)。
我希望每个USAGE_NAME都有一个SQL可以返回每个TAG的已使用和未使用的COUNT。
我实施的方式过于冗长,有人有一个简单的解决方案吗?
答案 0 :(得分:0)
按tag
分组并使用条件聚合
select tag,
sum(case when used is null then 1 else 0 end) as unused_cnt,
count(used) as used_cnt,
count(*) as total_cnt
from usage
group by tag
由于count()
仅计算非空值,因此您可以使用它来获取已使用的计数。