• 关于mysql的初步学习 (二)


     关于mysql(一)遗留下的一个小小的额问题。

     就是进行按照性别进行分组查询的时候 既要统计人数又要统计起对应的姓名和更该“sex”字段对应的名称。

     以前的方法人数创建了俩个字段进行了显示如下图所示:

                               

      起初对于group by的使用并不是太了解 今天看到教程之后,才恍然大悟:

                                                                                          

                                    

            于是有了下面结果

                            

         简化了求和的操作。精简了一下。 count(column_name) 里面的参数可以是任何一个值。

                   

         到这里为止,上次遗留的问题就完美解决了。 感觉还是得多看看基础知识。多练练才好。

       今天在继续学习的时候。发现在此基础还可以进一步的深挖,比如说计算数量的总和,平均值等等。目前看到的是 with rollup 。其实还有其他的函数也可以使用 比如说  with cube和grouping。这两个暂不介绍。下面以 with rollup 进行简单的实验:

                 

                使用 with rollup  在分组的统计数据的基础上再对统计的数据进行相同的统计(SUM,AVG,COUNT…)。

                可以说是对你使用的函数所求的值在再进行对应的函数操作,并生成新的记录。这里就是求和操作。

                但是有个小细节: 我们 group by 的字段 会生成一个null值,在你查询的其他字段 ,均会进行相应的统计操作。比如说这边  userlist 和 num 分别进行了相加,这对于实际应用的业务逻辑有更大的好处。

               上述结果产生的 新的统计记录,新增了 null值。mysql有个函数可以对此进行处理, coalesce(a,b,c) :

               

                 结果如下: 会带来一个 警告 使用这个函数 。 另外一个警告是case when 里面使用了中文

                 

                但总感觉太复杂没必要,进行 性别的转换,精简了下:

                

                也就是说 查询出来了 男女分别多少人 以及总数。

                最后说明下:

              1、 group by 的字段可以有多个。比如说查询 部门和职位进行分组,计算每个部门,每个职位的工资平均值等等。以及搭配 with rollup 和其他函数的操作。

               下一次进行详细的学习。

           

  • 相关阅读:
    虎虎的小尾巴:期货套利的入门——全文干货(2020-05-10)
    虎虎的小尾巴:对化工板块的一些思考(2020-05-06)
    虎虎的小尾巴:本周小结(2020-04-30)
    虎虎的小尾巴:耐得住寂寞,经得住诱惑(2020-04-24)
    虎虎的小尾巴:first blood(2020-04-19)
    虎虎的小尾巴:财不入急门(2020-04-15)
    虎虎的小尾巴:再谈仓位管理的重要性(2020-04-7)
    学习Linux系列--布署常用服务
    学习Linux系列--安装软件环境
    Asp.Net运行于32/64模式下的性能差异
  • 原文地址:https://www.cnblogs.com/doui/p/6705073.html
Copyright © 2020-2023  润新知