2016-10-12 4 views
0

私は現在の日付より前に追加された項目の数をカウントしたい特定の日付の後にグループ化するテーブルから日付の列を持つテーブルを持っています。例えば次の日までにMysql複合グループが呼び出されました

7日1から追加されたすべての項目が未7グループ化されます。 1日目から14日目に追加されたすべてのアイテムは14未満のグループに分類されます。 1日目から30日目までに追加されたアイテムはすべて30未満のグループに分類されます。 1日目から60日目に追加されたアイテムはすべて です。 adday 1から90に90の下で、及び 1から90を越えてグループ化されている「その他」

ここ

の下にグループ化されなければならない、私が本当に欲しいものの例示である:

enter image description here

結果I持っていることを期待していますがこのようなものです:

enter image description here

助けてください

答えて

0

グループ化ニーズに応じた番号のリストを含むテーブルが必要です。

CREATE TABLE `numbers` (
    `number` int(2) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

insert into numbers values (7), (14), (30); -- You can specify as you want 

そして、このクエリを試してみてください。

select sum(if((day(datewrite)) <= number, 1, 0)) as 'Number Of Items', number as 'Since member of Days' 
from test.b 
left join (
    select number from numbers 
) num on day(datewrite) <= number 
group by number; 

これは期待通りに結果生じるはずです。

関連する問題