sql >> Database teknologi >  >> RDS >> Sqlserver

Henter top 10 rækker og summer alle andre i række 11

Du har ikke angivet, hvordan du rangerer top 10, så jeg går ud fra, at de højeste antal er placeret højere?

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. Udfør forespørgsel baseret på den JSON, der er gemt i kolonnen

  2. Sådan bruger du joinforespørgsel til 4 borde i skinner

  3. Import CSV-filfejl:Kolonneværdi, der indeholder kolonneafgrænser

  4. SQL Server-tabeller:hvad er forskellen mellem @, # og ##?