http://xiangai.taobao.com
http://shop148612228.taobao.com

sql server 中select 语句groupby字段问题

SQL中,在分组聚集操作中,为什么在查询列中,除了聚集函数运算外,其它表达式必须包含在group by子句中?

悬赏分:10 | 解决时间:2011-5-16 22:35 | 提问者:ristal11

希望高手指点

最佳答案

select中含有的字段必须在group by当中有!~

简单的你可以把这个理解为规定!~

复杂点 你可以看下面的例子!~

table字段和数据如下

a    b    c

1    1    1

1    2    2

select a,b,sun(c) as sum_c from table group by a

因为按照a分组合集c 所以SQL的询结果

会有一条a,值等于1 。

会有一条c值等于3 。

没有按照b分组,两个不一样的值没有办法处理,这样就违背了sum函数的功能了!~

追问

首先谢了,不过我想再请问一下,我们既按a分组,又按b分组,那么询结果按a来还按b来啊?

回答

2个都分组!~

 

 

 

为什么 group by后面 必须跟selecte 后面的除了聚集函数外的所有字段

                        悬赏分:10 - 解决时间:2008-8-18 14:13

如:SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name 可以

SELECT store_name, address, SUM(Sales) FROM Store_Information GROUP BY store_name 不行。
必需要
SELECT store_name, address ,SUM(Sales) FROM Store_Information GROUP BY store_name ,address 才行。

提问者: yearningyou - 童生 一级

最佳答案

SQL语法的规定,用了group by,则select之后的字段除了聚集函数外都必须出现在group by中,你可以少于group by中的字段,但不能包含group by中没有的字段

回答者:a_li213 - 经理 四级 8-15 18:57

我来评论>>

 

 

 

posted @ 2011-12-06 16:11  万事俱备就差个程序员  阅读(1867)  评论(0编辑  收藏  举报

http://xiangai.taobao.com
http://shop148612228.taobao.com
如果您觉得对您有帮助.领个红包吧.谢谢.
支付宝红包
微信打赏 支付宝打赏