我有一些样本记录的表1(将有100多个记录)
lastname courtesy
Lane 3
Lane 4
Lane 5
Lane 12
Santana 4
Santana 5
我的查询按姓氏获取平均百分比分组,但不按姓氏分组
您可以看到Lane和Santana仍然没有分组。
请更正查询。谢谢。
SELECT
lastname,
courtesy,
percentage = AVG(courtesy) * 100 / SUM(AVG(courtesy)) OVER (PARTITION BY lastname)
FROM echo
GROUP BY
lastname, courtesy
结果
lastname courtesy percentage
Lane 3 12
Lane 4 16
Lane 5 20
Lane 12 50
Santana 4 44
Santana 5 55
结果看起来像这样
lastname percentage
Lane 16 (4/24)
Satana 22 (2/9)
count (lastname) / sum (courtesy) group by lastname
答案 0 :(得分:0)
我认为这是您想要的逻辑:
SELECT lastname,
SUM(SUM(courtesy)) OVER (ORDER BY lastname),
COUNT(*) * 1.0 / SUM(courtesy)
FROM echo
GROUP BY lastname;