打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
group by 1,2 、having的用法,你知道多少?
userphoto

2022.08.02 广东

关注

在学习mysql 数据库时,看到 group by语句写的是

group by 12

例如下面这条sql

select
id,
user_name
from tb_user
group by 1,2
order by 1,2

其中对于group by 1,2 和 order by 1,,2 我不明白这是什么意思。

查了下资料,才知道1,2相当于第一列,第二列。

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

这样一来,上面的SQL 等价于

select
id,
user_name
from tb_user
group by id,user_name
order by id,user_name

值得注意的是 这个索引是从1开始,而不是从0开始。这种操作也可以应用到order by子句。

“纸上得来终觉浅,绝知此事要躬行。”强调了做学问的功夫要下在哪里的重要性。

不妨在自己有空的时候在工具上实践下,验证下真伪。

知道了group by1,2 是什么后,我们再来深入了解下group by 、 having的 用法的用法。

关键字group by 、 having的 用法

group by 顾名思义 group 表示分组,by 后面写字段名,就表示根据哪个字段进行分组。

需要注意的是 group by必须得配合聚合函数来用,分组之后你可以计数(count),求和(sum),求平均数(avg)等。

常见的聚合函数有

  • count() 计数

  • sum() 求和

  • avg() 平均数

  • max() 最大值

  • min() 最小值

group by + 聚合函数语法

语法:

select 
   column_name,
   aggregate_function(column_name)
from table_name
where column_name operator value
group by column_name;

提到group by 也该到having 出场了,having 相当于条件筛选,但它与where筛选不同,having 是对于group by 对象进行筛选。

举个例子:

如果我们想要进一步知道每台设备,访问页面路径超过100的设备是哪些,这个时候就可以用having了。

select
distinctId,
count(distinctId)
from table_name
group by distinctId
having(count(distinctId))>100

在学习时,建议结合实践来看,不能纸上谈兵,要“亲身躬行”,学习起来效率会高些。

总结:

  •  group by 1,2 ,select 后面选择的列(属性),1 代表第一个列(属性),依次类推

  •  having基本用法 having 相当于条件筛选,但它与where筛选不同,having 是对于group by 对象进行筛选。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
sql 语句(一)词汇解释
SQLServer常用的聚合函数笔记
SQL中GROUP BY用法示例
【盲注系列】sql盲注之报错注入(内附自动化脚本)
浅谈Hibernate
VLOOUP函数 COLUMN函数用法解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服