MYSQLで最大値の値を取得したいのですがうまくいきません。


SELECT max(count) FROM table

上記のようにすればcountフィールドの全レコード中の最大値が一件返ってくるのですが
さらに範囲をしていして取得したいのですがうまくいきません。

やりたいことは作成日時(created)フィールドの降順で上位30件の範囲内でその中の最大値を一件取得したいのですが、

SELECT max(count) FROM table ORDER BY created desc LIMIT 0 , 30

このようにしてもcountフィールドの全レコード中の最大値が返ってくるのですがどうすればよいのでしょうか?
他もいろいろ試したのですがうまくいきませんでした。どなたか詳しい方教えてください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/09/09 22:48:19
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント70pt

LIMITは一番最後に実行される部分なので、
先にLIMITを有効にしたいならサブクエリにします。

一例

SELECT max(`count`)
FROM (SELECT `count` FROM `table` ORDER BY created DESC LIMIT 0 , 30) a;
id:jinchangz

問題なくできました。ありがとうございます。

2012/09/09 22:47:21

その他の回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

ポイント70pt

LIMITは一番最後に実行される部分なので、
先にLIMITを有効にしたいならサブクエリにします。

一例

SELECT max(`count`)
FROM (SELECT `count` FROM `table` ORDER BY created DESC LIMIT 0 , 30) a;
id:jinchangz

問題なくできました。ありがとうございます。

2012/09/09 22:47:21
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

ポイント30pt

select max(count) from (

SELECT count FROM table ORDER BY created desc LIMIT 0 , 30

)

未確認ですが、まず30件取得してから、その中から 最大値を 取得するようにしてやればいいと思いますよ。

id:jinchangz

こちらではできませんでした。末尾で別名を指定しないとだめみたいです。

2012/09/09 22:47:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません