質問 |
||
| 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; にて確認しました。 精進させて頂きます。 |