繁体   English   中英

SQL 计数具有行值的不同列

[英]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的评论):

  • 删除了 DISTINCT 子句
  • 将字符串周围的双引号更改为单引号

sqlfiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM