Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

показва първите 3 записа със запетая, разделени в една колона

Предполагам, че "първите три" са най-често срещаните три елемента в колоната Експертиза, но това може да се промени, ако не е това, което имате предвид.

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)

Резултат:

dfdf,.NEt,fgfg


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-бързият начин за актуализиране на 120 милиона записа

  2. Върнете редовете в точния ред, в който са били вмъкнати

  3. Ефект на подсказката NOLOCK в операторите SELECT

  4. Кога и как да използвате клаузата на SQL PARTITION BY

  5. Как да изтрия атрибут от XML променлива в sql сървър 2008?