1

MYSQL 遇见各种有意思题库-LMLPHP

使用sql查询每个学生a_id最常借图书类型u_id、表名:t1 (学生图书借阅)

【问题分析,1 先选出每个学生,每个类型所借数量】

        SELECT a_id,u_id,count(u_id) as a from t1 GROUP BY a_id,u_id ORDER BY a desc;

      2 从结果表中再选出,每个学生常借图书类型最大的一个,

        SELECT a2.a_id,a2.u_id,max(a2.a) from
          (SELECT a_id,u_id,count(u_id) as a from t1 GROUP BY a_id,u_id ORDER BY a desc) a2
        GROUP BY a2.a_id

      得出结果



MYSQL 遇见各种有意思题库-LMLPHP

题目: 没有成绩分数就显示挂科

解题思路: 1 以左连接(left join)查出各学生分数,

MYSQL 遇见各种有意思题库-LMLPHP

     2 以 1步中所查出的表作为临时表,

      然后选出avg字段为null的,更改为'挂科',其余为'及格'

select t1.id,t1.name,case when  t1.avg is null then '挂科' else '及格' end  as avg1
from
(SELECT a.id,a.name,b.avg from a left JOIN b on a.id=b.id) t1

-----题解sql

05-28 20:40