Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkan hitungan persen catatan dalam satu kueri

COUNT(*) OVER() memberi Anda jumlah total.

Sunting Tetapi sebenarnya Anda membutuhkan SUM(COUNT(MyTbl.ItemID)) OVER() saat Anda menjumlahkan nilai dalam kolom tersebut.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Microsoft ODBC Driver 13 untuk SQL Server :Login gagal untuk pengguna 'sa'

  2. Bitmap Mode Batch di SQL Server

  3. SQL Server memilih nilai acak (atau pertama) dengan agregasi

  4. Pemulihan Cadangan Paralel SQL Server -1

  5. Cara Membuat Rencana Eksekusi di SQL Server