SQL 道场
返回路线图

MODULE 3 / 中级

进阶查询

子查询、CTE、集合运算与条件分支:WITH / UNION / CASE。

进阶查询:子查询、CTE、集合、分支

子查询是查询里再套一层查询:

SELECT * FROM orders WHERE amount > (SELECT avg(amount) FROM orders);

**CTE(WITH)**给子查询起名字,让复杂查询更好读:

WITH big AS (SELECT * FROM orders WHERE amount > 100)
SELECT count(*) FROM big;
  • UNION 合并两个查询结果并去重;UNION ALL 不去重(更快)。
  • CASE WHEN ... THEN ... ELSE ... END 在 SELECT 里做条件分支(相当于 if/else)。

练习(8)

  1. 1.高于平均额的订单难度 3
  2. 2.北京客户的订单金额难度 3
  3. 3.CTE:总消费过 200 的客户难度 4
  4. 4.CASE:订单金额分档难度 3
  5. 5.UNION:北京或上海的客户难度 3
  6. 6.最大订单是谁下的难度 4
  7. 7.CTE 再连表难度 4
  8. 8.CASE 配聚合:大小额计数难度 4