岩崎と申します。
いつも皆様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