ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4018676 order byで並び変えし最大値の項目の抽出方法ついて
質問者:help_oshiete すみません。
order byで並び変えし最大値の項目のみ一意で抽出したいのですが

SELECT * from ta order by no,date1,date2;
no | date1 | date2
----+-------+-------
11 | 2008 | 0501
11 | 2008 | 0502
11 | 2008 | 0502
11 | 2008 | 0503
12 | 2008 | 0501
12 | 2008 | 0502
12 | 2008 | 0503
13 | 2008 | 0501
13 | 2008 | 0502
13 | 2008 | 0503
14 | 2008 | 0501

とあった場合、
no,date1,date2のorder by順番で並び変えし

11 | 2008 | 0503
12 | 2008 | 0503
13 | 2008 | 0503
14 | 2008 | 0501

とno項目に対し一つずつだけ出力したい場合どのようにしたらよいのでしょうか?
LIMITとoffsetだと1項目分しか出力されず困っております。
SELECT * from ta where no in (select no from ta group by no limit 1 offset 0) order by no,date1 desc,date2 desc limit 1;

宜しくお願い致します。
困り度:
  • 困っています
質問投稿日時:
08/05/13 10:51
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.1 普通のグループ化でよいのでは?

SELECT * FROM (SELECT no,MAX(date1) AS date1,MAX(date2) AS date2 FROM TA GROUP BY no)
ORDER BY no,date1,date2
回答者:nda23
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:
08/05/13 11:05
この回答へのお礼すみません。
動作確認しました有難うございした。
SELECT * FROM (SELECT no,MAX(date1) AS date1,MAX(date2) AS date2 FROM TA GROUP BY no) as abc ORDER BY no,date1,date2;
にて確認しました。
精進させて頂きます。