2011年4月28日

[mysql 15578] 最新 10件の内でベスト 5の合計を取りたい

岩崎と申します。
いつも皆様MLを参考にさせていただいてます。

ちょっと皆様のお知恵を拝借したいと思い投稿しました。

表題にもありますが、該当する「num」の一定期間の最新のデータ
10件のうち、diffのベスト5の合計を取りたいので以下のようなクエリで
取得しましたが、SELECTを何回も重ねるので

スッキリせずに分かりにくいクエリになっています。
他に方法はないでしょうか、よろしくお願いします。

ちなみにベスト5のデータを取るのでしたら、「AS d」の()内の
クエリで取れます。

SELECT SUM(di)
FROM
(SELECT di FROM
(SELECT diff AS di
FROM hd
WHERE num = 1
AND day BETWEEN '2010-04-01' AND '2011-03-31'
ORDER BY day DESC LIMIT 10
) AS s
ORDER BY di
LIMIT 5
) AS d

テーブル作成文
CREATE TABLE `hd` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`num` int(11) NOT NULL,
`day` date DEFAULT NULL,
`diff` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM

環境
OS Windows7 professional SP1
MySQL Version 5.1.16

投稿者 xml-rpc : 2011年4月28日 14:34
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103354
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。