求一分类汇总SQL语句(MY SQL数据库)
表名:Table_S,主关键字:ID,数据假设如下:
ID date region category -----cost volume -----value review
1 2011/10/24 湖南 香蕉 700 400 900 31
2 2011/10/25 湖南 香蕉 700 400 900 25
3 2011/10/26 湖南 香蕉 700 400 900 36
4 2011/10/27 湖南 香蕉 700 400 900 25
5 2011/10/28 湖南 香蕉 700 400 900 50
6 2011/10/29 湖南 香蕉 700 400 900 23
7 2011/10/30 湖南 香蕉 700 400 900 37
8 2011/10/31 河北 梨子 800 300 600 40
我想一次实现以下结果,按region,category分类汇总,求cost,volume,value的周平均,取review各周最后一天的值(数据库中,每个区域下的种类,一天最多只有一条记录,如湖南香蕉每天一条记录)。以上述数据为例,汇总后湖南,香蕉的结果如下:
week_num region category avg(cost) avg(volume) avg(value) review
43 湖南 香蕉 700 400 900 37
我只会求平均值,如下:
select date_format(date, '%x-%v ') as week_num,region,category,avg(cost),avg(volume),avg(value) from Talbe_s group by week_num,region,category;
怎么样可以把review各周最后一天的值放进去,各位帮帮忙啊,谢谢了。
[解决办法]
先把前面的值汇总出来 然后做个临时表去取每周最后一天的值 将这两个表join起来
[解决办法]
select date_format(date, '%x-%v ') as week_num,region,category,avg(cost),avg(volume),avg(value),(select review from Talbe_s where category=s.category order by date desc limit 1 ) from Talbe_s s group by week_num,region,category;
基本这个思路,其它的条件自己再加一下,比如时间,REGION之类的。