- - PR -
MySQL 期間 抽出 集計
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-12-07 00:32
年月日(例2000-01-01)と金額のテーブルにて
十年間のデータが入っているテーブルで期間の抽出を行いたいのですが 単純に月ごとの集計を見たい場合は select date_format(年月日,'%Y/%m') as 年月,sum(金額) as 金額 from `テーブル名` Group by date_format(年月日,'%Y/%m') で取り出せたのですが これを例えば二十日締めで一覧抽出集計を行いたいのですが、いくら悩んでも思うようにいきません。 すみませんが、よろしければ御教授頂けないでしょうか。 よろしくお願いいたします。 |
|
投稿日時: 2007-01-06 02:12
MySQLならこんな感じでどうですか?
まず年月日から日付だけとりだして、21より小さい年月日はそのままね21以上の年月日は 一ヶ月加えて、そこから(SASAさんが行っているように)年月を抽出してグルーピングします。 # カラムとグルーピング条件は同じものを書いてます。 SELECT date_format( if(date_format(年月日, '%d') < 21, 年月日, DATE_ADD(年月日, INTERVAL 1 MONTH)) , '%Y/%m') as "年月", sum(金額) as "金額" FROM `テーブル名` GROUP BY date_format( if(date_format( 年月日, '%d') < 21, 年月日, DATE_ADD(年月日, INTERVAL 1 MONTH)) , '%Y/%m' ); |
|
投稿日時: 2007-01-07 00:19
MySQLのバージョンは何ですか?
母体データ量は、何件くらいあるのでしょうか? 「group by」で列名でなく式を書いてしまうと、インデクスが利用されません。 性能はどうでもいいのですか? |
1