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

Извличане на първите 10 реда и сумиране на всички останали в ред 11

Не сте уточнили как класирате първите 10, така че предполагам, че най-високите резултати са класирани по-високо?

With TopItems As
    (
    SELECT C.CountryID AS CountryID
            , C.CountryName AS Country
            , Count(FirstName) AS Origin
            , ROW_NUMBER() OVER( ORDER BY Count(FirstName) DESC ) As Num
    FROM Users AS U
        JOIN Country AS C 
            ON C.CountryID = U.CountryOfOrgin
    GROUP BY C.CountryName, C.CountryID
    )
Select CountryId, Country, Origin
From TopItems
Where Num <= 10
Union ALL
Select 0, 'Others', Sum(Origin)
From TopItems
Where Num > 10


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. За полета за автоматично нарастване:MAX(ID) срещу TOP 1 ID ORDER BY ID DESC

  2. Преобразуването не бе успешно при преобразуване на дата и/или час от символен низ при вмъкване на дата и час

  3. Възстановяване на базата данни на SQL Server - неуспешно:38 (достигна края на файла.)

  4. Търсене на данни в база данни

  5. Как да пропуснете интервалите на припокриване в следната заявка, за да получите точното време за проследяване на ден