SELECT max(count) FROM table
上記のようにすればcountフィールドの全レコード中の最大値が一件返ってくるのですが
さらに範囲をしていして取得したいのですがうまくいきません。
やりたいことは作成日時(created)フィールドの降順で上位30件の範囲内でその中の最大値を一件取得したいのですが、
SELECT max(count) FROM table ORDER BY created desc LIMIT 0 , 30
このようにしてもcountフィールドの全レコード中の最大値が返ってくるのですがどうすればよいのでしょうか?
他もいろいろ試したのですがうまくいきませんでした。どなたか詳しい方教えてください。
LIMITは一番最後に実行される部分なので、
先にLIMITを有効にしたいならサブクエリにします。
一例
SELECT max(`count`) FROM (SELECT `count` FROM `table` ORDER BY created DESC LIMIT 0 , 30) a;
LIMITは一番最後に実行される部分なので、
先にLIMITを有効にしたいならサブクエリにします。
一例
SELECT max(`count`) FROM (SELECT `count` FROM `table` ORDER BY created DESC LIMIT 0 , 30) a;
問題なくできました。ありがとうございます。
select max(count) from (
SELECT count FROM table ORDER BY created desc LIMIT 0 , 30
)
未確認ですが、まず30件取得してから、その中から 最大値を 取得するようにしてやればいいと思いますよ。
こちらではできませんでした。末尾で別名を指定しないとだめみたいです。
問題なくできました。ありがとうございます。
2012/09/09 22:47:21