sql >> Base de Datos >  >> RDS >> Sqlserver

mostrar los 3 primeros registros en una coma separados en una columna

Supongo que los "tres primeros" son los tres elementos que aparecen con más frecuencia en la columna Experiencia, pero esto se puede cambiar si no es lo que querías decir.

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