• 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

    我来评论>>

  • 相关阅读:
    php stdClass转数组
    PHP 获取1970年前的时间戳,且为负
    springboot响应格式Resullt封装
    php使用elasticsearch
    day0620211207
    day0820211209
    day022021121
    day0520211206
    day0720211208
    day0320211202
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/2278133.html
Copyright © 2020-2023  润新知