日期:2014-05-19  浏览次数:20469 次

聚合函数和group by
聚合函数和group   by

例如,我需要在A表里查询B   C   D   这3列

按B来分组,但是要计算C的和

select   b   d   sum(c)
from   a  
group   by   ????

可以实现的吗?

刚开始学聚合函数和group   by

好多东西想不明白

但是不知道怎么表达..........

求解

------解决方案--------------------
create table a(B varchar(4),C int, D varchar(6))
insert into a
select 'q ',5, 'asd ' union all
select 'q ',6, 'qwe ' union all
select 'w ',7, 'ert ' union all
select 'e ',8, 'tgb '

select B, sum(C) as C
from a
group by B


B C
---- -----------
e 8
q 11
w 7

(3 row(s) affected)

如果按你的要求的话,D是检索不出来的


------解决方案--------------------
如果 SELECT 子句 <select list> 中包含聚合函数,则 GROUP BY 将计算每组的汇总值。指定 GROUP BY 时,选择列表中任意非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
select B,Max(d) as d,sum(C) as c
from A
group by B