我使用的是microsoft sql server 2017。
我在sql server上应用一个简单的select语句得到以下结果:
SELECT Result, Year, Month FROM Table;
Result Year Month
DELAY 2019 5
DELAY 2019 1
PUNCTUAL 2020 2
PUNCTUAL 2020 2
PUNCTUAL 2020 3
PUNCTUAL 2020 3
PUNCTUAL 2020 3
PUNCTUAL 2020 3
DELAY 2020 3
PUNCTUAL 2020 3
我需要得到准时结果的百分比,用月份和年份列分开。这个公式是总结果除以月份和年份,再除以准时结果乘以100。
例如,2020年3月:5个准时/6个结果*100=83.3%准时结果;其他的是延迟,我对此不感兴趣。
我试过计数的情况下,但我不能得到它正常工作。
例如,我需要得到的结果是:
Year Month Success
2019 1 0%
2019 5 0%
2020 2 100%
2020 3 83.3%
谢谢你的帮助。
3条答案
按热度按时间8fsztsew1#
我喜欢用
AVG()
为此:如果你想要一个介于0和100之间的数字,就用
100.0
而不是1.0
.qni6mghb2#
您可以使用以下语句使用
COUNT()
以及CASE
:结果:
如果需要以文本形式获取百分比,可以使用
CONCAT()
:clj7thdc3#
您可以将聚合与format命令一起使用,以获得所需的结果:
结果: