MySQL数据库— 汇总和分组数据

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

规章: 查询每个玩家的平均分数,并展现玩家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

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

外接连特点:做连接的星星独表明地位不一致,其中有相同摆的基础表

                 inner join users on score.user_qq=user.user_qq

select sum(score) as ‘总分数’ from scores where user_qq=’12301′

外连接分为不当连接和右外连接

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

select count(*) from users

select count (user_qq) from users

     where 子句基于指定的尺度对记录举行筛选

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

规章:查询玩家表中一共发小名玩家消息

章:查询每个玩家的究竟分数,平均分数,最高分数

avg()          数字                        
 对点名列被的装有非空值求平均值

规章: 查询QQ号是12302之玩家的到底分数,平均分数和高分数

同等 汇总和分组数据

 与WHERE子句的区分是,在HAVING子句中凡是盖聚合函数的总括结果也罗标准。

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

count()   任意基于履行的数据类型       总计结果集合众全部记录行的多少

                 语句被先行出现的表为’左表’, 后出现的表为’右表’

                 如若一致摆设表中在外一样摆表中无存对应数据,则免开连接

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

外连接特点:相连接的鲜张表地位平等

亚 连接查询

max()   数字,字符,datetime      
 再次回到指定列着之极致可怜数字,近期底日期或最好老的字符集

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

  1. 淘分组结果

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

     group by 子句以数据划分也多单分组

 

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

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

                 from
子句后一贯出现六个表名,这种连接形式就是属于内连接,是隐式内连接

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

               
 例:查询平均分数大于3500底分消息,彰显玩家昵称,总分数,平均分数,并以平均分数降序排列

 

  在以GROUP
BY子句子时,可用HAVING子句为分组总计进一步设置总结口径,HAVING子句与GROUP
BY 子句之涉嫌分外给WHERE子句与SELECT子句之间的关联

               
 基础表中的各级条数据要出现,尽管其他一样张表中绝非数据以及之配合,也倘使由此NULL补一起

                  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

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

  1. 多表连接

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

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

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

4.SELECT 语句之执行各个

 

 

条例:查询QQ号是12301底玩家游戏之究竟分数

   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

     使用聚合函数举办测算

  1. 使用GROUP BY分组

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

     使用having子句筛选分组

     from 子句指定数据源

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

连天查询分为内连接和外连接少栽

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

                 例:查询分数音讯,突显玩家昵称,游戏名称以及分数

1.常用之聚合函数:

min()    数字,字符,datetime      
 重返指定列着之最好小数字,最早的日期或最好小之字符串

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

条例:查询分数音讯,呈现玩家昵称,游戏名称和分数

sum()         数字                          对点名列被的持有非空值求总和

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

 

网站地图xml地图