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

vis de øverste 3 poster i et komma adskilt i én kolonne

Jeg går ud fra, at "top tre" er de tre mest hyppigt forekommende elementer i kolonnen Ekspertise, men dette kan ændres, hvis det ikke er det, du mente.

WITH T1 AS (
    SELECT TOP(3) Expertise, COUNT(*) AS cnt
    FROM Expertise
    GROUP BY Expertise
    ORDER BY cnt DESC
), T2 AS (
   SELECT ROW_NUMBER() OVER (ORDER BY cnt DESC) AS rn, Expertise
   FROM T1
)
SELECT (SELECT Expertise FROM T2 WHERE rn = 1) + ',' + 
       (SELECT Expertise FROM T2 WHERE rn = 2) + ',' +
       (SELECT Expertise FROM T2 WHERE rn = 3)

Resultat:

dfdf,.NEt,fgfg


  1. AbstractMethodError på resultset.getObject

  2. Hvordan får man forskellen i år fra to forskellige datoer?

  3. Konvertering af MySQL til Doctrine Query Builder. Problemer med IF og CONCAT. Eller en anden tilgang til underforespørgsler på udvalgt

  4. Hvorfor rollback ikke fungerer for variabel tabel i SQL Server 2012?