Mysql学习3

本文介绍了如何使用SQL进行复杂查询,包括利用HAVING子句筛选特定条件的数据,以及使用ORDER BY进行排序操作。通过具体例子展示了如何计算平均分并找出不及格科目超过两门的学生,同时介绍了基本的排序和限制查询结果的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

把列当成可以变量,可以运算,大于小于都可以计算


having 是在之前select计算完以后再对之进行筛选


设有成绩表如下:
姓名  科目 分数
张三  数学 90
张三  语文 50
张三  地理      40
李四  语文 55
李四  政治 45
王五  政治 30


试查询两门及两门以上不及格同学的平均分


1.首先先查询所有人的平均分
select name, avg(score) from stu group by name;


2.查询不及格的数量
select name,sorce < 60 as gk from stu;


3.计算出同一个人挂科超过2科的
select name,count(sorce < 60) from stu group by name;


4.查询不及格超过2门以上的同学的平均分

select name, avg(score),sum(sorce < 60) as gk from stu group by name having gk >= 2;



29.select 5种子句之 order by #排序
   select goods_id,goods_name from good where cat_id = 3 order by shop_price;
#这是一个升序的排序
     根据字段排序, 可以升序也可以降序,default是升序
#这是一个降序的排序
   select goods_id,goods_name from good where cat_id = 3 order by shop_price desc; #descend
想显式的升序排列 asc
   select goods_id,goods_name from good where cat_id = 3 order by shop_price asc; #asc  


30.mysql不等于  <>


31.select goods_id,goods_name from good where cat_id <> 3 order by cat_id;
   如果仅根据cat_id无法排出 假如(cat_id都相同),那就在进行后面的排序
   select goods_id,goods_name from good where cat_id <>3 order by cat_id, shop_price desc;
cat_id是升序  shop_price是降序
这里先对cat_id, 如果再分不出来的话 就用后面的shop_price desc进行降序的排序
  select goods_id, goods_name from good order by goods_publish; #按照发布时间
 
32.Limit 在语句的最后,起到限制条目的作用
   Limit[offset],,[n]
   offet:偏移量(跳过多少个)
   n :个数
   如果offset不写 表示0,n  #表示默认为0
    #取价格第4到第8的三个商品
    select goods_id, goods_name, shop_name from good order by shop_price Limit 3,4;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值