MySQL中 group by 1, order by 1 语句是什么意思和group by+聚合函数用法小结

编程入门 行业动态 更新时间:2024-10-12 01:26:33

MySQL中 group by 1, order by 1 语句是什么意思和group by+聚合函数用法<a href=https://www.elefans.com/category/jswz/34/1769750.html style=小结"/>

MySQL中 group by 1, order by 1 语句是什么意思和group by+聚合函数用法小结

1、SQL中 group by 1, order by 1 语句是什么意思


最近学习数据库,在codecademy中, 遇到如下语句

SELECT a.dep_month,
       a.dep_day_of_week,
       AVG(a.flight_count) AS average_flights
  FROM (
        SELECT dep_month,
               dep_day_of_week,
               dep_date,
               COUNT(*) AS flight_count
          FROM flights
         GROUP BY 1,2,3
       ) a
 GROUP BY 1,2
 ORDER BY 1,2;


看到group by 1,2 和 order by 1, 2。看不懂,google,搜到了Stack Overflow 上有回答 What does SQL clause “GROUP BY 1” mean? 

大概意思就是,group by, order by 后面跟数字,指的是 select 后面选择的列(属性),1 代表第一个列(属性),依次类推。

因而上面最外层的

 GROUP BY 1,2
 ORDER BY 1,2
等价于
 GROUP BY a.dep_month, a.dep_day_of_week
 ORDER BY a.dep_month, a.dep_day_of_week

注意,这边从1开始数,而不是0

参考:
         

2、关键字group by 、 Having的 用法

概述

       GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视表。

GROUP BY必须得配合聚合函数来用,分组之后你可以计数(COUNT),求和(SUM),求平均数(AVG)等。

2.1、常用聚合函数

  • count() 计数
  • sum() 求和
  • avg() 平均数
  • max() 最大值
  • min() 最小值

2.2、group by + 聚合函数语法

SELECT column_name, aggregate_function(column_name) 
FROM table_name 
WHERE column_name operator value 
GROUP BY column_name;

2.3、HAVING

当然提到GROUP BY 我们就不得不提到HAVING,HAVING相当于条件筛选,但它与WHERE筛选不同,HAVING是对于GROUP BY对象进行筛选。

我们举个例子:

每个部门人数都有了,那如果我们想要进一步知道员工人数大于30000的部门是哪些,这个时候就得用到HAVING了。

语句如下:

SELECT 
  (SELECT d.dept_name FROM departments d WHERE de.dept_no = d.dept_no ) AS 部门
  , count( de.emp_no ) AS 人数 
FROM dept_emp de 
WHERE de.to_date = '9999-01-01' 
GROUP BY de.dept_no 
HAVING count( de.emp_no ) > 30000

结果

参考:.html

更多推荐

MySQL中 group by 1, order by 1 语句是什么意思和group by+聚合函数用法小结

本文发布于:2024-02-07 11:34:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756542.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小结   语句   函数   MySQL   group

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!