用于制作列表等的 SQL 查询

Posted

技术标签:

【中文标题】用于制作列表等的 SQL 查询【英文标题】:SQL query to make a list and more 【发布时间】:2016-12-25 16:26:52 【问题描述】:

下面是插入数据的表格。

CREATE TABLE police(event_id VARCHAR(100), search_type VARCHAR(1000),
                    reported_by VARCHAR(100));
INSERT INTO police VALUES ('gng67g6yf', 'person','ceridigion' );
INSERT INTO police VALUES ('bfewbqfjhfb', 'person', 'ceridigion' );
INSERT INTO police VALUES ('ytftdfctg', 'n/a','ceridigion'  );
INSERT INTO police VALUES ('yufvugyu', 'person','pembrokeshire',  );

我想要找出的是一个查询,它将列出报告的_by,并包含在这些区域中发生的搜索。如下所示:

reported_by     Stopped and searched
ceridigion              2
pembrokeshire           1   

【问题讨论】:

【参考方案1】:
SELECT reported_by,
       SUM(CASE WHEN search_type = 'person' THEN 1 ELSE 0 END) AS `Stopped and searched`
FROM police
GROUP BY reported_by

演示在这里:

SQLFiddle

【讨论】:

【参考方案2】:

如果我理解正确,您只需要计算行数(每个 reported_bysearch_type 不是 n/a

SELECT   reported_by, COUNT(*) AS "Stopped and searched"
FROM     police
WHERE    search_type != 'n/a'
GROUP BY reported_by

【讨论】:

以上是关于用于制作列表等的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

仅在一个 SQL 查询中检索所有类别、子类别、子子类别等的完整列表

cognos怎么制作好看的报表

小白如何使用Axure制作列表排序

想制作一个基于网页的Web学生成绩查询系统

使用 html 下拉列表输入的 php 中的 SQL 查询

如何制作一个实用方法来比较来自两个模式的任何 sql 查询的输出