sql >> データベース >  >> RDS >> Mysql

カンマ区切りの列で発生をカウントする方法は?

    使用できるもの:

    SqlFiddleDemo

    SELECT sub.val AS tags, COUNT(*) AS `count`
    FROM
    (
      SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.tags, ',', n.n), ',', -1) AS val
      FROM tab t 
      CROSS JOIN 
      (
         SELECT a.N + b.N * 10 + 1 n
           FROM 
          (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
          ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
          ORDER BY n
      ) n
      WHERE n.n <= 1 + (LENGTH(t.tags) - LENGTH(REPLACE(t.tags, ',', '')))
    ) sub
    GROUP BY sub.val
    


    1. 大きな数をサポートする自然順

    2. 週ごとにグループ化して、空の週を取得する方法は?

    3. クエリ後にクエリセットをフィルタリングすることは可能ですか? django

    4. Microsoft Accessは死んでおらず、VBAも死んでいない