Oracle WITH简单例子

        假设有一个名为 students 的表,包含字段 student_id、student_namescore

现在要查询成绩大于等于 80 分的学生信息以及所有学生的平均成绩。

WITH high_score_students AS (
    SELECT student_id, student_name, score
    FROM students
    WHERE score >= 80
)
SELECT hss.student_id, hss.student_name, hss.score, AVG(s.score) AS average_score
FROM high_score_students hss
JOIN students s ON 1 = 1 -- 这里只是为了计算所有学生的平均成绩,可以根据实际情况调整连接条件
GROUP BY hss.student_id, hss.student_name, hss.score;

        在这个例子中,首先使用 WITH 子句定义了一个名为 high_score_students 的 CTE,它从 students 表中筛选出成绩大于等于 80 分的学生信息。然后在主查询中,使用这个 CTE 以及原始的 students 表来计算成绩大于等于 80 分的学生信息和所有学生的平均成绩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值