zoukankan      html  css  js  c++  java
  • 在MySQL中group by 是什么意思

    
    mysql语法中group by是什么意思?
    
    在百度中搜索半天,最后找到一篇解释比较好的(不是博文,是百度知道,很郁闷那么多网友怎么就没人解释的清楚),链接如下:
    
    http://zhidao.baidu.com/question/495569434771073124.html
    
    按照上面所说的数据库,我自己建了一个stu,操作如下:
    
    1.
    
    mysql> select * from stu;
    +------+--------+-------+
    | name | course | score |
    +------+--------+-------+
    | 张三     | java   |    90 |
    | 张三     | c#     |    98 |
    | 李四     | java   |    89 |
    | 李四     | c#     |    62 |
    | 李四     | c++    |    80 |
    +------+--------+-------+
    
    按照网友说的如下操作,但是在select查询语句中多加一列course,因为以course来进行分组的,这样显示的效果会非常明显。
    
    2.
    
    mysql> select course,sum(score) from stu group by course;
    +--------+------------+
    | course | sum(score) |
    +--------+------------+
    | c#     |        160 |
    | c++    |         80 |
    | java   |        179 |
    +--------+------------+
    
    再多来个实例:
    
    3.
    
    mysql> select name,sum(score) from stu group by name;
    +------+------------+
    | name | sum(score) |
    +------+------------+
    | 张三     |        188 |
    | 李四     |        231 |
    +------+------------+
    
    是不是霍然开朗了
    
    下面我的理解如下:
    
    group by确实是分组,是把group by后面带的列元素名内容相等的进行分组(这是核心),然后前面的函数操作就是对这些分组进行操作,如按照第2步中的实例,原来5条记录,现在通过course来分组了一下,现在成了3组,然后sum的操作就是对每一组进行求和,这样显示出的结果就是第二步的结果了,同理第3步一样。
    
    
    
  • 相关阅读:
    CodeForces Gym 100935G Board Game DFS
    CodeForces 493D Vasya and Chess 简单博弈
    CodeForces Gym 100935D Enormous Carpet 快速幂取模
    CodeForces Gym 100935E Pairs
    CodeForces Gym 100935C OCR (水
    CodeForces Gym 100935B Weird Cryptography
    HDU-敌兵布阵
    HDU-Minimum Inversion Number(最小逆序数)
    七月馒头
    非常可乐
  • 原文地址:https://www.cnblogs.com/ludundun/p/11593846.html
Copyright © 2011-2022 走看看