[英]SQL count distinct column with row value
我有包含以下结构的调查结果的表tbl_rating
:
| office_name | rating |
|-------------|-------------|
| Office1 | Satisfied |
| Office3 | Unsatisfied |
| Office2 | Neutral |
| Office1 | Satisfied |
我的查询无法显示office_name
列的所有DISTINCT
值以及rating
列中相同值的总数。
我正在寻找的查询结果如下:
| office_name | Satisfied | Neutral | Unsatisfied |
|-------------|-----------|---------|-------------|
| Office1 | 2 | 0 | 0 |
| Office2 | 0 | 1 | 0 |
| Office3 | 0 | 0 | 1 |
这是我目前正在处理的查询。 它适用于计算声明值的评级总数,但是当我尝试使用DISTINCT office显示数组的结果时确实给了我一个错误
$office = $db->query("SELECT DISTINCT office
(SELECT COUNT(rating) FROM tbl_result WHERE rating='Satisfied') AS S,
(SELECT COUNT(rating) FROM tbl_result WHERE rating='Neutral') AS N,
(SELECT COUNT(rating) FROM tbl_result WHERE rating='Unsatisfied') AS U");
SELECT
office_name,
SUM(IF(rating = 'Satisfied', 1, 0)) AS Satisfied,
SUM(IF(rating = 'Neutral', 1, 0)) AS Neutral,
SUM(IF(rating = 'Unsatisfied', 1, 0)) AS Unsatisfied
FROM
tbl_rating
GROUP BY
office_name
编辑(感谢sticky bit的评论):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.