数据库SQL笔试题目

这篇博客介绍了几个关于数据库SQL的笔试题目,包括查询在特定地点的比赛项目及冠军、处理NULL值、插入新记录、检查班级均分、多表连接查询、同名学生计数、使用IN和EXIST的区别、不及格课程的学生和平均成绩计算、以及使用RANK、DENSE_RANK和ROW_NUMBER进行排名和成绩统计。通过这些题目,深入理解SQL的各种操作和查询技巧。
摘要由CSDN通过智能技术生成

大学生春季运动会的数据库,保存了比赛信息的三个表如下:
运动员 sporter(运动员编号 sporterid,姓名name,性别 sex,所属系号 department),
项目 item(项目编号 itemid,名称 itemname,比赛地点 location), 成绩 grade(运动员编号 id,项目编号 itemid,积分 mark)。
用SQL语句完成在“体育馆”进行比赛的各项目名称及其冠军的姓名

SELECT 
    i.itemname, s.name
FROM
    grade g,
    (SELECT 
        itemid iid, MAX(mark) max
    FROM
        grade
    WHERE
        itemid IN (SELECT 
                itemid
            FROM
                item
            WHERE
                location = '体育馆')
    GROUP BY itemid) temp,
    item i,
    sporter s
WHERE
    g.itemid = temp.iid
        AND g.mark = temp.max
        AND temp.iid = i.itemid
        AND s.sporterid = g.sporterid;  

注:这道题需要注意:在使用group by的时候, select后面字段要么出现在group by当中要么包含在聚合函数里面, 常见的聚合函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值