统计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
我的 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