计算SQL中每个父元素下每个子元素的等级

时间:2016-02-09 15:07:54

标签: mysql sql relational-database

我的表格如下:

enter image description here

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

enter image description here

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用条件聚合执行此操作:

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