SQL语言的数据查询之基于派生表的查询

子查询不仅可以出现在WHERE子句中,还可以出现在FROM子句中,这时子查询生成的临时派生表成为了主查询的查询对象。

[例] 找出每个学生超过他自己选修课程平均成绩的课程号

SELECT Sno,Cno
FROM SC,(SELECT Sno,AVG(Grade)FROM SC GROUP BY Sno)
AS AVG_SC(avg_sno,avg_grade)
WHERE SC.Sno=AVG_SC.avg_sno and SC.Grade>=AVG_SC.avg_grade;

这里FROM子句中的子查询将生成一个派生表Avg_SC。该表由avg_sno和avg-grade两个属性组成,记录每个学生的学号及平均成绩。主查询将SC表与AVG_SC表按学号相等进行连接,选出选修课成绩大于其平均成绩的课程号。

如果子查询中没有聚集函数,派生表可以不指定属性列,子查询SELECT子句后面的列名为其默认属性。通过FROM子句生成派生表时,AS关键字可以省略,但必须为派生关系指定一个别名。而对于基本表,别名是可选择项。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xclincer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值