mysql - 统计SQL中每个父元素下每个子元素的评分

标签 mysql sql relational-database

我的表格如下所示:

enter image description here

需要找到父级下具有不同评级的子元素的数量,如下所示

enter image description here

例如:在 ELEMENT '1' 下有三个子元素,即 2、3、4,评级为 C、B、C分别。所以没有评级为 'A' 的 child (ren),但是有 1 评级为 'B' & 2 评级为 'C' 的元素。

到目前为止,我已尝试根据父 ID 进行分组并过滤评级,但我无法使用 JOINS 构建单个查询。

最佳答案

您可以使用条件聚合来做到这一点:

SELECT ParentID, 
       COUNT(CASE WHEN Rating = 'A' THEN 1 END) AS A,
       COUNT(CASE WHEN Rating = 'B' THEN 1 END) AS B,
       COUNT(CASE WHEN Rating = 'C' THEN 1 END) AS C
FROM mytable
WHERE ParentID IS NOT NULL
GROUP BY ParentID

Demo here

关于mysql - 统计SQL中每个父元素下每个子元素的评分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35295415/

相关文章:

mysql - 在 SQL 中,从表 a 中选择所有列,其中列 a 值等于表 b 中最新条目的值?

Mysql同时获得高分和所有提交的分数

python - 重组DataFrame并写入SQL数据库

sql - 在 SQL 中排列值

python - SQLAlchemy : Nested Composite Column Types and Custom Types

mysql - 检查多个表中的单个值并检查响应

php - Memcached奇怪的问题!

php - 将表从 MySQL 同步到 MSSQL

mysql - Mysql单查询统计多表数据

mysql - 无论如何,是否可以在 MySql Workbench 中从数据库图表创建 sql 语句