一 汇总和分组数据

凯旋门074网址,查询语句 —> 结果集(多条数据) —> 聚合函数  —-> 单行记录

1.常用的聚合函数:

sum()         数字                          对点名列中的全数非空值求总和

avg()          数字                        
 对点名列中的全体非空值求平均值

min()    数字,字符,datetime      
 再次来到钦赐列中的最小数字,最初的日期恐怕最小的字符串

max()   数字,字符,datetime      
 再次来到钦点列中的最大数字,近来的日子或然最大的字符集

count()   任性基于行的数据类型       总结结果集结众全部记录行的数量

 

例:查询游戏用户表中一共有个别许名游戏发烧友音讯

澳门凯旋门注册网址,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′

 

  1. 使用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

 

  1. 筛选分组结果

  在应用GROUP
BY子句时,可用HAVING子句为分组计算进一步设置总计规范,HAVING子句与GROUP
BY 子句的涉嫌一定于WHERE子句与SELECT子句之间的涉嫌

 与WHERE子句的界别是,在HAVING子句中是以聚合函数的总括结果为筛选规范。

 例:查询平均分数大于五千的游戏用户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

相关文章