网站流量日志分析--统计分析--sql补充扩展--group by 语法限制解析|学习笔记

简介: 快速学习网站流量日志分析--统计分析--sql补充扩展--group by 语法限制解析

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第四阶段)网站流量日志分析--统计分析--sql补充扩展--group by 语法限制解析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/696/detail/12229


网站流量日志分析--统计分析--sql补充扩展--group by 语法限制解析


1、group by

group by 字段有两个要求出现在表达式中字段要么是分组的字段,要么是被聚合函数包围应用的字段。

2、表有两个字段一个是姓名一个是城市表名字是 t_user(name,city)。

name

city

allen

beijing

tom

shanghai

kobe

beijing

james

beijing

anna

shanghai

 

3、需求统计每个城市的人有多少

select count (name) from t_ user group by city;确定关键字统计

sql 执行时底层是根据城市分组北京是一个分组上海来自于另外一个分组

allen

beijing

kobe

beijing

james

beijing


tom

shanghai

anna

shanghai

count 表达式应用于各个组内针对于第一组反回3条记录针对于第二组返回2条记录最终反馈两个数字一个是3,一个是2,三个人和两个人分别是哪个城市city 是分组的字段不会报错

Select city, count (name) from t_user group by city;

出现在表达式中字段要么是分组的字段,要么是被聚合函数作用包围的字段。

allen

beijing

kobe

beijing

james

beijing

 

tom

shanghai

anna

shanghai

还是分为两组city, count (name) 表达式应用每个分组中不会出现歧义返回的结果是 beijing3,shanghai2,显示人数和 city 名

4、需求还想看一下每个城市的具体的人是谁叫什么名字

Select name, count (name) from t_user group by city;

如果输入 name就会报非法引用的错误name 引用不合法

把数据分为两个组每个组内得到三个表达式不能将 name 字段多个聚在一起写name 不是分组字段就会发生歧义如果是分组字段相同的才会来到同一分组根据 city 分组是北京的才会进入一个组根据名字分组不是相同的名字属于不同的组消除歧义聚合函数指的是输入多行输出一行的函数不管输入几行被聚合函数应用完之后输出一行就可以消除歧义比如针对 name 做 count 统计不管有几行用聚合函数就会返回一行也可以消除歧义不可能在一个表达式中出现不同的结果在 name 中显示不同的东西这是歧义因此 group by 才有这样的语法规则要不然把它放在分组中保证分组一样要不然被聚合函数应用是否放在分组中要结合具体的环境具体的业务确定它的出现是否会改变分组的结果这就是 group by 的限制和具体的解释

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
9月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
772 3
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `<appender>` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `<logger>` 和 `<root>` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
3222 1
|
9月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
638 8
|
SQL 关系型数据库 MySQL
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
|
SQL 算法 数据挖掘
【SQL周周练】:利用行车轨迹分析犯罪分子作案地点
【SQL破案系列】第一篇: 如果监控摄像头拍下了很多车辆的行车轨迹,那么如何利用这些行车轨迹来分析车辆运行的特征,是不是能够分析出犯罪分子“踩点”的位置
346 15
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
1456 57
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
SQL 关系型数据库 MySQL
【MySQL】SQL分析的几种方法
以上就是SQL分析的几种方法。需要注意的是,这些方法并不是孤立的,而是相互关联的。在实际的SQL分析中,我们通常需要结合使用这些方法,才能找出最佳的优化策略。同时,SQL分析也需要对数据库管理系统,数据,业务需求有深入的理解,这需要时间和经验的积累。
462 12
|
SQL 运维 关系型数据库
MySQL Binlog 日志查看方法及查看内容解析
本文介绍了 MySQL 的 Binlog(二进制日志)功能及其使用方法。Binlog 记录了数据库的所有数据变更操作,如 INSERT、UPDATE 和 DELETE,对数据恢复、主从复制和审计至关重要。文章详细说明了如何开启 Binlog 功能、查看当前日志文件及内容,并解析了常见的事件类型,包括 Format_desc、Query、Table_map、Write_rows、Update_rows 和 Delete_rows 等,帮助用户掌握数据库变化历史,提升维护和排障能力。
|
监控 Java 应用服务中间件
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
1743 13
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
10482 2

推荐镜像

更多
  • DNS