2

我正在使用 SQLite。

我有一张简单的桌子

id  flag     
1   y   
2   y   
1   n   
2   y   
3   n   

我需要创建一个应该给出标记行数的查询

id No
1  1
2  2
3  0

如果我使用

    SELECT  Table1.ID as ID, Count(Table1.id) AS No
    FROM Table1
    WHERE (((Table1.[flag])=True))
    GROUP BY ID;

GROUP BY忽略 id=3。

我能做些什么?

4

1 回答 1

2

你快到了:代替COUNT,使用SUM,并将你的where子句作为条件移动到它里面。

这应该有效:

SELECT  Table1.ID as ID, SUM(case when (Table1.[flag])=True then 1 else 0 end) AS No
FROM Table1
GROUP BY ID;
于 2012-05-01T10:02:34.127 回答