zoukankan      html  css  js  c++  java
  • mysql 划重点啦,,

    查询和某某东西完全一样时用   行子查询   group_concat(c_id  order by c_id)
    
    举例:-- 16、查询和01号同学所学课程完全一样的学生信息
    
    
    查询至少几个一样时用   列子查询   
    
    举例:-- 17、查询至少有一门课与01号同学所学课程一样的学生信息
    
    
    查询并且时   
    
    举例:-- 18、查询选修了01号课程并且也选修了02号课程的学生信息 
    
    
    在一个表中查询某一项比另一项高或者大时用自联结查询、、
    
    举例:-- 19、查询01号课程比02号课程分数高的学生信息及成绩
    
    
    查询在某一个中不在某一个中时
    
    举例:-- 20、查询选修了01号课程但是没有选修02号课程的学生信息
    
    in ............not in      或者  
    
    select stu.*
    from sc left join stu on sc.s_id= stu.s_id
    group by stu.s_id
    having sum(c_id=01)=1 and sum(c_id=02)=0;
    
    
    
    -- 22、查询各科成绩最高分,最低分,平均分,合格率:cname
    
    
    
    select c_name ,max(score),min(score),avg(score),sum(score>=60)/count(co.c_id) 合格率
    from co left join sc on sc.c_id = co.c_id
    group by co.c_id;
    

      

    -- 14、查询所有学生不同课程的成绩及平均成绩:s_id,语文,数学,英语,平均成绩
    #第一种方法
    select s_id,sum(case when c_id='01' then score else 0 end) 语文,
    			sum(case when c_id='02' then score else 0 end) 数学,
    			sum(case when c_id='03' then score else 0 end) 英语,
    			avg(score) 平均成绩
    from sc
    group by s_id;
    
    
    select stu.s_id,sum(case when c_id='01' then score else 0 end) 语文,
    			sum(case when c_id='02' then score else 0 end) 数学,
    			sum(case when c_id='03' then score else 0 end) 英语,
    			avg(score) 平均成绩
    from stu left join sc on stu.s_id=sc.s_id
    group by stu.s_id;
    
    ##第二种方法
    select s_id,sum(if( c_id='01',score ,0)) 语文,
    			sum(if( c_id='02',score ,0)) 数学,
    			sum(if( c_id='03',score ,0)) 英语,
    			avg(score) 平均成绩
    from sc
    group by s_id;
    

      

  • 相关阅读:
    Markdown引用图片,且不使用网上链接的解决方法
    测试
    sudo用户权限添加问题
    windows安装ipython
    ansible基本操作
    mysql用户权限操作
    解决windows7系统的快捷方式无法添加到任务栏
    linux下查看磁盘分区的文件系统格式
    mail客户端POP和IMAP协议
    linux设置history历史记录
  • 原文地址:https://www.cnblogs.com/manjianlei/p/11285629.html
Copyright © 2011-2022 走看看