0

0

MySQL汇总和分组数据

大家讲道理

大家讲道理

发布时间:2017-08-19 10:42:18

|

1742人浏览过

|

来源于php中文网

原创

一 汇总和分组数据

查询语句 ---> 结果集(多条数据) ---> 聚合函数  ----> 单行记录

1.常用的聚合函数:

sum()         数字                          对指定列中的所有非空值求总和

avg()          数字                          对指定列中的所有非空值求平均值

min()    数字,字符,datetime        返回指定列中的最小数字,最早的日期或者最小的字符串

max()   数字,字符,datetime        返回指定列中的最大数字,最近的日期或者最大的字符集

count()   任意基于行的数据类型       统计结果集合众全部记录行的数量

 

云网OA
云网OA

采用JSP开发的办公自动化产品、基于B/S结构,运行环境:JDK v1.5、Tomcat v5.5、MySQL v4.1,三者均为以上版本其他相关内容:可视化流程设计: 流程支持串签、会签和分支流程,可以设置流程节点的修改、删除权限,并可指定流程中各个用户在表单中可以填写的域。智能表单所见即所得设计: 智能设计,自动在数据库中生成表格,方便优化程序 公共交流: 集论坛、博客、聊天室于一体文件柜:C

下载

例:查询玩家表中一共有多少名玩家信息

select count (user_qq) from users

select count(*) from users

例:查询QQ号是12301的玩家游戏的总分数

select sum(score) as '总分数' from scores where user_qq='12301'

例:查询QQ号是12302玩家的评价分数

select avg(score) as '平均分数’ from scores where user_qq='12302'

例:查询游戏编号的1的最高分数

select max(score) as '最高分数' from score where gno=1

例: 查询QQ号是12302的玩家的总分数,平均分数和最高分数

select sum(score) as '总分',avg(score) as '平均分',max(score) as '最高分' from scores where user_qq ='12302'

 

2. 使用GROUP BY分组

例:查询每个玩家的总分数,平均分数,最高分数

select sum(score) as '总分',avg(score) as '平均分',max(score) as '最高分' from scores group by user_qq

例: 查询每个玩家的平均分数,并显示玩家QQ号和平均分数

select user_qq, avg(score) as '平均分数' from scores group by user_qq

 

3. 筛选分组结果

  在使用GROUP BY子句时,可用HAVING子句为分组统计进一步设置统计条件,HAVING子句与GROUP BY 子句的关系相当于WHERE子句与SELECT子句之间的关系

 与WHERE子句的区别是,在HAVING子句中是以聚合函数的统计结果为筛选条件。

 例:查询平均分数大于4000的玩家QQ号,总分数,平均分数

select user_qq, sum(score) as'总分数', avg(score) as '平均分数' from scores group by user_qq having avg(score) > 4000

例:查询所有用户的平均分数,和总分数,并按平均分数倒序排列

select user_qq,avg(score) as '平均分数' , sun(score) as '总分数' from scores group by user_qq orde by avg(score) desc

 

4.SELECT 语句的执行顺序

     from 子句指定数据源

     where 子句基于指定的条件对记录进行筛选

     group by 子句将数据划分为多个分组

     使用聚合函数进行计算

     使用having子句筛选分组

     使用order by 子句对结果集进行排序

 

二 连接查询

1. 多表连接

例:查询分数信息,显示玩家昵称,游戏名称和分数

select user_name as '昵称', game as '游戏名称' , score as '分数' from users.user_qq = scores.user_qq and game.gno= scores.gno

连接查询分为内连接和外连接两种

内连接特点:相连接的两张表地位平等

                 如果一张表中在另一张表中不存在对应数据,则不做连接

                 from 子句后面直接出现多个表名,这种连接方式即属于内连接,是隐式内连接

                 显示内连接格式:select col_list from table1[inner] join table2 on table1.col=table2.clo1

                 例:查询分数信息,显示玩家昵称,游戏名称和分数

                 select user_name as '昵称', g_name as '游戏名称', score as '分数' from games inner join scores on games.gno =scores.gno

                 inner join users on score.user_qq=user.user_qq

                 例:查询每个玩家的昵称,总分和平均分

                    select user_name as '昵称',sum(score) as '总分',avg(score) as '平均分' from users U inner join scores S on S.user_qq = U.user_qq group by                         U.user_qq,user_name

                 例:查询平均分数大于3500的分数信息,显示玩家昵称,总分数,平均分数,并按照平均分数降序排列

                  select user_name as '昵称',sum(score) as '总分',avg(score) as '平均分' from users U inner join scores S on S.user_qq = U.user_qq group by                         U.user_qq,user_name having avg(score)>3500 order by avg(score) desc

外连接分为左连接和右外连接

外连接特点:做连接的两个表地位不平等,其中有一张的基础表

                 基础表中的每条数据必须出现,即使另一张表中没有数据与之匹配,也要用NULL补齐

                 左外连接时左表是基础表,右表外连接时右表是基础表

                 语句中先出现的表为'左表', 后出现的表为'右表'

外连接格式: SELECT COL_LIST FROM TABLE1 LEFT/RIGHT[OUTER] JOIN TABLE2 ON TABLE1.COL=TABLE2.COL

 例:查询所有玩家关于5号游戏的分数信息

   select user_name as'昵称' gno as '游戏编号', score as '分数' from users U left join scores S on U.user_qq=S.user_qq and S.gno=5

相关专题

更多
菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

56

2026.01.21

三角洲入口地址合集
三角洲入口地址合集

本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

51

2026.01.21

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

397

2026.01.21

妖精漫画入口地址合集
妖精漫画入口地址合集

本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

118

2026.01.21

java版本选择建议
java版本选择建议

本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

3

2026.01.21

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

11

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 805人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号