sql >> データベース >  >> RDS >> Sqlserver

1回のクエリでレコードのカウントパーセントを取得する

    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),
                            (4)) MyTbl(ItemID)
             ON ( MyTbl.ItemID = Items.ItemID )
    GROUP  BY Items.ItemID
    ORDER  BY Items.ItemID  
    


    1. mysqlの制約を確認してください

    2. 単一のデータセットを複数回挿入するmysql

    3. 春にSimpleJDBCCallを使用してストアドプロシージャのマルチテーブル結果を取得するには?

    4. 演算子が存在しません:json =json