我在使用SQL时遇到问题:
我有一张桌子:
School Name | Class | Studends
===================================
Golden | 1 | 20
Red | 1 | 80
Golden | 2 | 7
Red | 2 | 14
Golden | 3 | 3
Red | 3 | 1
我希望得到以下结果:
School Name | Class | Percent
======================================
Golden | 1 | 20 %
Red | 1 | 80 %
Golden | 2 | 33 %
Red | 2 | 66 %
Golden | 3 | 75 %
Red | 3 | 25 %
我试图找到解决方案,但没有找到,有人有答案吗?
答案 0 :(得分:1)
如果您的RDBMS支持窗口聚合
SELECT
School_Name,
Class,
100.0 * Studends / SUM(Studends) OVER (PARTITION BY Class ) AS Percent
FROM YourTable
答案 1 :(得分:1)
SELECT
a."School Name",
a.Class,
a.Studends / SUM(b.Students)
FROM YourTable a
LEFT JOIN YourTable b ON a.Class = b.Class
GROUP BY
a."School Name",
a.Class,
a.Studends,
b.Class