微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 获取单个查询中记录的计数百分比

参考这个问题:

Get count of items and their values in one column

我如何在单个查询中获得记录计数的百分比,如下所示:

ItemId        count          Percent
------------------------------------
   1            2              33.3
   2            0                0
   3            1              16.6
   4            3              50.0

谢谢

解决方法

COUNT(*)OVER()为您提供总计数.

编辑但实际上,您需要SUM(COUNT(MyTbl.ItemID))OVER(),因为您要对该列中的值求和.

SELECT Items.ItemID,[count] = COUNT(MyTbl.ItemID),[Percent] = 100.0 * COUNT(MyTbl.ItemID) / SUM(COUNT(MyTbl.ItemID)) OVER()
FROM   (VALUES (1,'N1'),(2,'N2'),(3,'N4'),(4,'N5')) Items(ItemID,ItemName)
       LEFT JOIN (VALUES(1),(1),(3),(4),(4)) MyTbl(ItemID)
         ON ( MyTbl.ItemID = Items.ItemID )
GROUP  BY Items.ItemID
ORDER  BY Items.ItemID

原文地址:https://www.jb51.cc/mssql/77605.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐