人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

SELECT max(count) FROM table

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

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

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

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

●質問者: jinchangz
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
●70ポイント ベストアンサー

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

一例

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

jinchangzさんのコメント
問題なくできました。ありがとうございます。

2 ● きゃづみぃ
●30ポイント

select max(count) from (

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

)

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


jinchangzさんのコメント
こちらではできませんでした。末尾で別名を指定しないとだめみたいです。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ