统计SQL中每个parent下每个child元素的评分

Count the ratings of each child element under each parent in SQL

我的 Table 看起来如下:

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

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

的元素

到目前为止,我已尝试根据 parent 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