none
Group by的问题 RRS feed

  • 问题

  •   SELECT col1,col2 FROM table1 GROUP BY col1,col2

    这时分组的顺序是col1,col2

    SELECT col1,col2,sum(col3) FROM table1 GROUP BY col1,col2

    为啥顺序会变为col2,col1???


    提问题真爽
    2010年8月5日 8:40

答案

  • 这和内部实现有关系. 不同版本的SQL结果可能不同. 如果不指定顺序,SQLSERVER是不会保证顺序的,记住这点就可以了
    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2010年8月6日 1:07
    版主

全部回复

  • 分组规则是在group by 中指定的,不会发生变化.

    你说的顺序变化是什么意思


    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2010年8月5日 12:48
    版主
  • 运行语句

    SELECT ID,Type FROM table GROUP BY ID,Type

    结果为

    IDA    TYPE1

    IDA    TYPE2

    IDB    TYPE1

    IDB    TYPE2

     

    运行语句

    SELECT ID,Type,SUM(MONEY) FROM table GROUP BY ID,Type

    结果为

    IDA    TYPE1   0

    IDB    TYPE1  0

    IDA    TYPE2  0

    IDB    TYPE2  0

     


    提问题真爽
    2010年8月5日 13:16
  • 我觉得这个问题没必要多想吧

    你想要怎么样的排序 加个order by不就可以了么?

    2010年8月5日 13:29
  • 我想问的是,他这两个分组的字段,还有顺序之分么?如果有的话,是怎么分的。
    提问题真爽
    2010年8月5日 16:34
  • 这和内部实现有关系. 不同版本的SQL结果可能不同. 如果不指定顺序,SQLSERVER是不会保证顺序的,记住这点就可以了
    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2010年8月6日 1:07
    版主