Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете броене на процент от запис в една заявка

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Попълване на C# DataTable асинхронно

  2. SQLBulkCopy с вмъкване на идентичност в целевата таблица

  3. Ключова дума не се поддържа:метаданни

  4. Как да създадете база данни в SQL Server

  5. Как да ИЗБЕРЕТЕ *, но без имената на колони трябва да са уникални във всеки изглед