[前][次][番号順一覧][スレッド一覧]

mysql:15578

From: 岩崎 誠司 <岩崎 誠司 <iwasaki_ryuqseed_6130@xxxxxxxxxx>>
Date: Thu, 28 Apr 2011 14:34:26 +0900 (JST)
Subject: [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

 


添付ファイル

[前][次][番号順一覧][スレッド一覧]

-> @ 15578 2011-04-28 14:34 [岩崎 誠司 <iwasaki_] 最新 10 件の内でベスト 5 の合計を取りたい
     15579 2011-04-28 15:27 ┗[Mikiya Okuno <mikiya]                                       
     15580 2011-04-28 16:58  ┗[岩崎 誠司 <iwasaki_]