- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:group byで指定したカラム以外のカラムの値を取得したい)
【SQL】group byで指定したカラム以外のカラムの値を取得する方法
このQ&Aのポイント
- group byで指定したカラム以外のカラムの値を取得する方法について解説します。
- t_meisaiテーブルには調味料の使用履歴が記録されており、dateとtypeの組み合わせごとにorderの最小値を求めるSQLを使用します。
- 求めた最小値に対応するレコードのidを抽出する方法についても説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>クエリを実行したまま処理が戻りません。 というか、遅いんでしょう(^^;;; >下のものはgroup by keyのkeyがないのでできませんでした。 うーん、「できませんでした」って書くより、group by句を直したほうが早いですよね? select id, minorder from t_meisai t1, (select date, type, min(order) as minorder from t_meisai group by date, type) t2 where t1.date = t2.date and t1.type = t2.type
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.1
min(order)が不要だったらこんなので。 select id from t_meisai t1 where exists( select date || type as key, min(order) from t_meisai t2 group by key having key = (t1.date || t1.type) ) min(order)も必要ならこんなんで select id, minorder from t_meisai t1, (select date, type, min(order) as minorder from t_meisai group by key) t2 where t1.date = t2.date and t1.type = t2.type
補足
ご回答ありがとうございます。 実は両方ともうまくいきませんでした。 上のものはhaving句のkeyが無効と言われ having key > having (t2.date || t2.type)にしましたが クエリを実行したまま処理が戻りません。 下のものはgroup by keyのkeyがないのでできませんでした。