查询结果排序,多列排序,聚合函数,查询分组,筛选结果,select语句执行顺序

对指定列进行排序

单列排序要素(order_by_list按该列排序)

select col_list form table_name order by order_by_list [ASC|DESC]

例如查询分数表中编号为1的所有分数信息并按照分数升序排序

select * form scores where gno=1 order by score asc

例如查询分数表中编号为1的所有分数信息并按照分数降序排序

select * form scores where gno=1 order by score desc

 

对多列进行排序

多列排序要点:(排序依据排序方式优先级

(理解优先级如果金牌数高先排金牌数如果金牌数相同在比较银牌数如果银牌数相同在比较铜牌数)

例如查询分数表所有信息并按照游戏编号的升序排序和分数的降序进行排序

select * form scores order by asc ,score desc


 

聚合函数

 

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

select count(user_qq) from users

如果user_qq为空则不会被统计

改写:select count(*) from users

例如查询qq号是12301的玩家游戏总分数

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

例如查看qq号是12302的玩家的平均分

select avg(score) as '平均分' form scores where user_qq='12302'

例如查看游戏编号是1的游戏的最高分数

select max(score) as '最高分' form scores where gno=1

例如查看QQ号是12302的玩家的总分平均分最高分

select

sum(score) as '总分'

avg(score) as '平均分'

max(score) as '最高分'

form scores

where user_qq='12302'

 

在结果集中进行分组

例如要求查询每个玩家的总分数平均分最高分

select

sum(score) as '总分'

avg(score) as '平均分'

max(score) as '最高分'

form scores

group by user_qq

 

筛选分组的结果(having一定要写在group by之后

select

sum(score) as '总分'

avg(score) as '平均分'

max(score) as '最高分'

form scores

group by user_qq

having avg(score)>4000

 

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

select user_qq,

avg(score) as '平均分',

sum(score) as '总分数'

from scores

group by user_qq

order by avg(score) desc

 

select语句的执行顺序

from子句指定数据源

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

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

用聚合函数进行计算

使用having子句筛选分组

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

 

 


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值