select a,b,c,d,e from admin group by a,b,c,d,e像上面这个句子  查询结果到底是按哪个列进行分组的? 把我搞晕了还有order by  也是这种情况  是按哪个列排序的?我是才学的sql 问题比较菜   希望大家帮忙解答一下! 谢谢啦!

解决方案 »

  1.   

    select a,b,c,d,e from admin group by a,b,c,d,e==
    按a,b,c,d,e列分组
      

  2.   

    晕 到底是按哪个列分组啊? 按a b c d e 列进行分组是什么意思
      

  3.   

    select a,b,c,d,e from admin group by a,b,c,d,e==按a,b,c,d,e列分组
      

  4.   

    group by 的作用是分组求汇总情况,象sum(),avg(),count(),max(),min()一般通过group by求得,你所看到的没有这些,实际意思也不大,所以你难理解。
    group by 按从左到右的顺序分组,也就是先把数据 按a列 相同的数据放到一起,当然相同的数据中b 列又有相同的数据,进一步分组数据会 按b列 相同的数据放到一起,往下不说了
    a   b   c    d    e           a   b   c    d    e       a   b   c    d    e
    A1  B2  C2   D2   D4          A1  B2  C2   D2   D4      A1  B2  C2   D2   D4
    A2  B3  C2   D3   D2          A1  B3  C4   D5   D4      A1  B2  C3   D4   D4
    A1  B3  C4   D5   D4          A1  B2  C3   D4   D4      A1  B3  C4   D5   D4
    A1  B2  C3   D4   D4          A2  B3  C2   D3   D2      A2  B3  C2   D3   D2
    第一个是原始数据,第二个按a分组所以A1排到了起,但b列仍是乱的,第三个按a,b分组b2排到了起,往下按规律,由此你会发现group by中的顺序是很重要的,
    order by 的原理也是这样,先按左边的排序,直到最右边
      

  5.   

    LZ不厚道, 你不会问group by a,b,c是什么意思而非要问group by a,b,c,d,e是什么意思,害得人家白白帮你多写两列.
      

  6.   

    我以前学习SQL的笔记:
    GROUP BY将一列或者多列定义成为一组,使得组内所有的行在那些列中的数值相同,注意:select列表中的每一列都必须同时出现在group by中(除常量和聚集函数外)
    select EmployeeID,Count(*) totals from Orders group by EmployeeID
    select EmployeeID,Count(*) totals from Orders group by EmployeeID Having count(*)>=100
    select CustomerID,Count(*)Totals from Orders group by CustomerID Having CustomerID like 'L%'