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

这是咋回事?关于group by 的

2012-03-22 
这是怎么回事?关于group by 的一个sql:selecta.year as year , c.name as area , sum(a.price) as pricefr

这是怎么回事?关于group by 的
一个sql:
select 
  a.year as year , c.name as area , sum(a.price) as price
from
  supor_new.tbl_product_core_list as a , supor_new.dict_terminal as b , supor_new.tree_areapp as c 

where
  a.terminal_num =b.terminal_num 
  and b.areapp=c.id
   
group by c.name ,year

上面这样写正确

但如果写成group by area,year。出来的数据就不对了。

不知道什么原因,请高手指点。谢谢!

[解决办法]
group by 是用来分组的,有一个前提就是有重复数据,在select 子句中只能有分组字段(也就是重复的字段)和统计函数。
你的sql语句的order by中c.name ,year与select子句中a.year, c.name ,对应,该了别的当然就错了。


[解决办法]
这个坑定是三个表中有重复的字段,你的加上表的别名才行啊
[解决办法]
你看下 area 是不是其它表的什么字段。
你现在是以 supor_new.tbl_product_core_list 的 year 
和 supor_new.tree_areapp 的name来分组查询的、

热点排行