0

我有以下表格列:ID(id),类型(字符串。可以是:打开或关闭)

我想获得一个输出计数,对于每个唯一 ID,我计算 ID 获得打开类型的次数以及获得关闭类型的次数。

所以输出看起来像这样:

ID | openCount | closeCount
10 | 23        | 2

有任何想法吗?

4

2 回答 2

1
SELECT id, SUM(type='open') openCount, SUM(type='closed') closedCount FROM table GROUP BY id;

发生的情况是 SUM() 函数聚合所有共享相同值的行的所有值type='open'和值,如果为 true ,则为 false 。type='closed'id10

于 2014-07-03T20:00:58.113 回答
1

select ID,count( * ) AS "openCount" where type = "open" group by ID union select ID,count( * ) AS "closeCount" where type = "close" group by ID;

应该这样做。它的计数(星)堆栈溢出似乎不喜欢那样:)

于 2014-07-03T19:55:43.333 回答