如何解决使用计数器在 SQL Server 中创建百分比
假设您在表 'Student' 中有此数据:
ID COUNTY
------------------
1 Millwood
2 Jackson
3 Kendall
4 Millwood
5 Worth
6 Belton
7 Belton
8 Worth
9 Jackson
10 Millwood
11 Kendall
12 Worth
13 Belton
14 Belton
15 Maxwell
16 Maxwell
17 Maxwell
18 Maxwell
19 Maxwell
20 Johnson
米尔伍德有 3 人,杰克逊有 2 人,肯德尔有 2 人,沃斯有 3 人,贝尔顿有 4 人,麦克斯韦有 5 人,约翰逊有 1 人。假设我想要人口最多的前 5 个县。那将是:
Maxwell 5
Belton 4
Worth 3
Millwood 3
Jackson 2
Kendall 2
现在,假设我想要一个占总人口百分比的输出。根据这个数据,这六个县(一个州)总共有20人。 Maxwell 占总人口的 25%,Belton 占 20%,Worth 和 Millwood 各占 15%,Jackson 和 Kendall 各占 10%。我如何在 sql Server 中获得该输出?
Maxwell 25%
Belton 20%
Worth 15%
Millwood 15%
Jackson 10%
Kendall 10%
SELECT
countycodes.countyname,SUM(student.mstid) AS tot_stdts_by_county,ROUND(SUM(student.mstid) / SUM(SUM(student.mstid)) OVER (),2) * 100 AS pct
FROM
Student
INNER JOIN
CountyCodes ON Student.MCOUNTY = CountyCodes.CountyCode
AND Student.MSTATE = CountyCodes.StateCode
WHERE
(Student.MSTLEV IN (1,2,3,4))
GROUP BY
Student.MRPTYR,Student.MRPTTRM,CountyCodes.CountyCode,Student.MCOUNTY,Student.MENTST,CountyCodes.CountyName,Student.MSTATE,CountyCodes.StateCode
HAVING
(Student.MRPTTRM = 'sa')
AND (Student.MRPTYR = 2007)
AND (Student.MENTST = 'ZY')
ORDER BY
tot_stdts_by_county DESC
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。