加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 06:54:11 所属栏目:MsSql教程 来源:网络整理
导读:参考这个问题: 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()为您提
参考这个问题:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读