postgresql的with语句多个select 使用
时间: 2025-01-19 12:10:36 浏览: 44
在PostgreSQL中,WITH语句(也称为公共表表达式,CTE)用于定义一个临时的结果集,这个结果集可以在后续的查询中引用。使用WITH语句可以简化复杂的查询,提高查询的可读性和维护性。
WITH语句可以包含多个SELECT查询,每个查询都可以在后续的查询中引用。以下是一个使用WITH语句进行多个SELECT查询的示例:
```sql
WITH
sales AS (
SELECT
salesperson_id,
SUM(amount) AS total_sales
FROM
orders
WHERE
order_date >= '2023-01-01'
GROUP BY
salesperson_id
),
targets AS (
SELECT
salesperson_id,
target_amount
FROM
sales_targets
WHERE
year = 2023
),
performance AS (
SELECT
s.salesperson_id,
s.total_sales,
t.target_amount
FROM
sales s
JOIN
targets t
ON
s.salesperson_id = t.salesperson_id
)
SELECT
p.salesperson_id,
p.total_sales,
p.target_amount,
CASE
WHEN p.total_sales >= p.target_amount THEN '达标'
ELSE '未达标'
END AS performance_status
FROM
performance p;
```
在这个示例中:
1. `sales` CTE计算了每个销售员在2023年的总销售额。
2. `targets` CTE获取了每个销售员在2023年的目标销售额。
3. `performance` CTE将`sales`和`targets` CTE的结果进行连接,计算每个销售员的销售业绩。
4. 最后的主查询根据`performance` CTE的结果,输出每个销售员的ID、总销售额、目标销售额以及业绩状态。
阅读全文
相关推荐




















