sql - 对 SQLite 上标记的行进行计数

标签 sql sqlite

我正在使用 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。

我能做什么?

最佳答案

您已经快完成了:使用 SUM 代替 COUNT,并将 where 子句作为条件移至其中。

这应该有效:

SELECT  Table1.ID as ID, SUM(case when (Table1.[flag])=True then 1 else 0 end) AS No
FROM Table1
GROUP BY ID;

关于sql - 对 SQLite 上标记的行进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396147/

相关文章:

mysql - Hibernate 查询语法错误

android - SQLite like语句用特殊字符替换空格

C++:使用sqlite创建动态数据库以传输语音流

mysql - 使用哪种数据类型来存储用户数据?

sql - Postgres 将所有数组值匹配到具有和条件的同一列---更新

SQL 和 where 子句中的 NULL 值

sql - PostgreSQL:哪种索引顺序更好?

sql - 来自外部驱动器的非常慢的简单 SQLite 查询

.net - 如何知道 System.Data.Sqlite 对象何时/什么异常被抛出?

java - 如何使用 GreenDAO 进行全选?