Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

exibir os 3 principais registros em uma vírgula separados em uma coluna


Estou assumindo que os "três principais" são os três elementos que ocorrem com mais frequência na coluna Expertise, mas isso pode ser alterado se não for o que você quis dizer.
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)

Resultado:
dfdf,.NEt,fgfg