前提・実現したいこと
以下のような階層構造を持つタグを付与されたテーブルがあります。
ID | 値 | タグ1 | タグ2 |
---|---|---|---|
1 | サッカー | スポーツ | 球技 |
2 | 野球 | スポーツ | 球技 |
3 | マラソン | スポーツ | 陸上 |
4 | ギター | 音楽 | 軽音 |
上記から取得したいイメージは以下の通りです。
タグ1 | タグ2 | 件数 |
---|---|---|
スポーツ | null | 3 |
スポーツ | 球技 | 2 |
スポーツ | 陸上 | 1 |
音楽 | null | 1 |
音楽 | 軽音 | 1 |
上記の取得を1つのSQLでしたいと考えています。
「SELECT タグ1, タグ2, count(*) GROUP BY タグ1, タグ2」を実行して、
アプリケーション側で集計すればできますが、あまりスマートではないと思っています。
(サブクエリも無いほうが良いと考えています。)
1つのSQLで取得できるか、できる場合はどのようなSQLになるかご教授いただければ幸いです。
補足情報(FW/ツールのバージョンなど)
MySQL5.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/05 04:32