Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Zeigen Sie die Top 3 Datensätze in einer Spalte durch Kommas getrennt an

Ich gehe davon aus, dass die "obersten drei" die am häufigsten vorkommenden drei Elemente in der Spalte "Expertise" sind, aber dies kann geändert werden, wenn es nicht das ist, was Sie gemeint haben.

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)

Ergebnis:

dfdf,.NEt,fgfg