我有以下表格列:ID(id),类型(字符串。可以是:打开或关闭)
我想获得一个输出计数,对于每个唯一 ID,我计算 ID 获得打开类型的次数以及获得关闭类型的次数。
所以输出看起来像这样:
ID | openCount | closeCount
10 | 23 | 2
有任何想法吗?
SELECT id, SUM(type='open') openCount, SUM(type='closed') closedCount FROM table GROUP BY id;
发生的情况是 SUM() 函数聚合所有共享相同值的行的所有值type='open'
和值,如果为 true ,则为 false 。type='closed'
id
1
0
select ID,count( * ) AS "openCount" where type = "open" group by ID union select ID,count( * ) AS "closeCount" where type = "close" group by ID;
应该这样做。它的计数(星)堆栈溢出似乎不喜欢那样:)