前提・実現したいこと
あるテーブル"a"が有り、
そのテーブルにカラム"a_id"、"status"が有ります。
テーブル"a"にレコードが以下の用に登録されていると仮定します。
a_id|status
1|1
2|2
3|3
4|4
5|2
6|1
テーブル"b"では以下のようにデータが入っています。
そのテーブルにカラム"b_id"、"hoge_id"、"a_id"が有ります。
b_id|hoge_id|a_id
1|1|1
2|1|2
3|1|3
4|1|4
5|2|5
6|2|6
※aに登録されているstatusの値は抽出する優先順位が有り、
4
2
1
3
という優先順位で表示するとなっています。
該当のクエリ
この時に以下のようにGROUP BYしてデータを抽出するとします。
statusに優先順位に沿った集計内容を表示がしたいです。
MySQL
1SELECT 2 B.`hoge_id` AS hogeId 3 ,MIN(A.`status`) AS status -- ここでstatusの優先順位に沿った集計内容を取得したい 4FROM `a` AS A 5INNER JOIN `b` AS B 6ON A.a_id = B.a_id 7GROUP BY B.hoge_id;
期待する結果
期待する結果は以下のようになればいいなと思います。
hogeId|status
1|4
2|2
補足情報
MySQLを使用しており、バージョンは5.7となります。
初めての質問で拙い点があるかと思いますが、宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/16 02:24