任何人都可以帮我解决以下条件的 sql 和 sqlite 查询。具体来说,我想显示 2 个类别的合并计数。
**Table**
Category Sub_category
A 1
A 2
A 2
B 1
C 1
C 1
C 2
D 1
D 1
D 1
D 2
D 3
**Required Output**
Category Sub_category Count **condition(not part of o/p just instruction)**
A 1 1 -
A 2+ 2 -
B 1 1 -
C 1 2 -
C 2+ 1 -
D 1 3 -
D 2+ 1 should contain the count of 2 and more
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法实现相同的目的:
select Category,
count(CASE WHEN Sub_category = 1 THEN Sub_category END) AS '1',
count(CASE WHEN Sub_category >= 2 THEN Sub_category END) AS '2+'
from table
Run Code Online (Sandbox Code Playgroud)
然而输出略有不同,因此仅寻找第一个输出。
**Output**
Category 1 2+
A 1 2
B 1 0
C 1 2
D 3 2
Run Code Online (Sandbox Code Playgroud)
提前致谢!
你要:
select Category,
(case when sub_category = 1 then '1' else '2+' end) as sub_category,
count(*)
from table
group by Category,
(case when sub_category = 1 then '1' else '2+' end);
Run Code Online (Sandbox Code Playgroud)
也就是说,您希望将子类别组放在行上,而不是列上。