22. SQL--group by子句:分组
1. 前言
group by 子句用来根据指定的字段对结果集(选取的数据)进行分组,如果某些记录的指定字段具有相同的值,那么它们将被合并为一条数据。通俗地理解,group by 子句将根据指定的字段合并数据行。
借助 sql 聚合函数,您可以对分组的数据进行再次加工,例如:
sum( ) 函数可以对指定字段的值进行求和;
count( ) 函数可以计算某个分组内数据的条数;
avg( ) 函数可以对指定字段的值求平均数。
2. 语法
group by 子句的基本语法如下:
select column1, column2
from table_name
where [ conditions ]
group by column1, column2
order by column1, column2
group 子句使用说明:
group by 子句需要和 select 语句一起使用;
如果有 where 子句,那么 where 子句需要放在 group by 子句之前;
如果有 order by 子句,那么 order by 子句需要放在 group 子句之后。
3. 示例
现在有包含如下记录的 website 表:
+----+----------------+----------------------------+-----+-------+---------+---------+ | id | name | url | age | alexa | uv | country | +----+----------------+----------------------------+-----+-------+---------+---------+ | 1 | 百度 | https://www.baidu.com/ | 21 | 4 | 5010.5 | CN | | 2 | 淘宝 | https://www.taobao.com/ | 17 | 8 | 3996.75 | CN | | 3 | C语言中文网 | http://c.biancheng.net/ | 12 | 7923 | 11.62 | CN | | 4 | Google | https://www.google.com/ | 23 | 1 | 36474 | US | | 5 | GitHub | https://github.com/ | 13 | 95 | 216.3 | US | | 6 | Stack Overflow | https://stackoverflow.com/ | 16 | 48 | 592.2 | US | | 7 | Yandex | http://www.yandex.ru/ | 11 | 53 | 591.82 | RU | | 8 | VK | https://vk.com/ | 23 | 23 | 1206 | RU | +----+----------------+----------------------------+-----+-------+---------+---------+
如果您想知道每个国家网站的总访问量,那么 group by 子句的写法如下:
select country, sum(uv) as total from website
group by country;
sql as 关键字用来给字段起一个临时的别名,该别名只显示在结果集中,并不会更改原始表的字段名。执行结果:
+---------+--------------------+ | country | total | +---------+--------------------+ | CN | 9018.869999885559 | | RU | 1797.8200073242188 | | US | 37282.50001525879 | +---------+--------------------+
您可以使用 TRUNCATE() 函数让小数保留两位数字,具体写法如下:
select country, truncate(sum(uv), 2) as total from website
group by country;
执行结果:
+---------+----------+ | country | total | +---------+----------+ | CN | 9018.86 | | RU | 1797.82 | | US | 37282.50 | +---------+----------+
标签:
SQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix