回答

收藏

在单个查询中获得记录的计数百分比

技术问答 技术问答 237 人阅读 | 0 人回复 | 2023-09-14

参考这个问题:
, V& Y+ \2 h+ G* s& }; m在一列中获得项目及其值的计数4 j6 h5 u" L% P% H# o, M) ?
我如何在单个查询中获得记录计数的百分比,如下所示:- _2 N/ J6 M6 z, ~" @1 L
ItemId        count          Percent------------------------------------                       33333                  33333. 3  2                          3                                      16161616                                    16161616          . 6  4                    500            5005050500                                     50050505050                                 .0谢谢1 A+ |! J9 h: v8 Q! [9 @
                                                                : |* o5 B$ n3 @( r/ T
    解决方案:                                                               
# K8 l' Y7 u: o' ]5 r/ E4 R* x  m9 s                                                                COUNT(*) OVER() 给你总数。
" q& L4 a' E# v. c编辑    但事实上,你需要SUM(COUNT(MyTbl.ItemID)) OVER()对列中的值求和。
) D$ O* A( L# P/ L7 }SELECT Items.ItemID,      [count] = COUNT(MyTbl.ItemID),      [Percent] = 100.0 * COUNT(MyTbl.ItemID) / SUM(COUNT(MyTbl.ItemID)) OVER()FROM   (VALUES (1,'N一、              N二、            N              N5')) Items(ItemID,ItemName)       LEFT JOIN (VALUES(1)                  (1),                        (3),                         (4),                 MyTbl(ItemID)         ON ( MyTbl.ItemID = Items.ItemID )GROUP  BY Items.ItemIDORDER  BY Items.ItemID
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则