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

SQL Group BY, Топ N елемента за всяка група

;WITH s AS 
(
  SELECT StoreID, UPCCode, tds, rn = ROW_NUMBER()
  OVER (PARTITION BY StoreID ORDER BY tds DESC)
  FROM 
  (
    SELECT StoreID, UPCCode, tds = SUM(TotalDollarSales)
    FROM Sales
    GROUP BY StoreID, UPCCode
  ) AS s2
)
SELECT StoreID, UPCCode, TotalDollarSales = tds
FROM s
WHERE rn <= 5
ORDER BY StoreID, TotalDollarSales DESC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изтриване на събития от регистрационния файл на базата данни в SQL Server (T-SQL)

  2. Нови функции в SQL Server 2017 (Database Engine)

  3. Актуализирайте статистиката на SQL Server с помощта на план за поддръжка на база данни

  4. Кой е най-добрият начин за създаване и попълване на таблица с числа?

  5. Инструкцията ALTER TABLE е в конфликт с ограничението FOREIGN KEY