首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

求一分类汇总SQL语句(MY SQL数据库),该如何处理

2012-02-16 
求一分类汇总SQL语句(MY SQL数据库)表名:Table_S,主关键字:ID,数据假设如下:IDdateregioncategory-----cos

求一分类汇总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之类的。

热点排行