在 SQL 中如何在不使用 case 的情况下将两个查询合并为一个?

How to merge two queries into one without using case when in SQL?

我有两个查询要放在一起:

查询 1

SELECT 
   SUM(sales) AS sales,
   SUM(profit) AS profit
FROM X
WHERE site = 'de'       

查询 2

SELECT 
    SUM(sales) AS sales_flag,
    SUM(profit) AS profit_flag
FROM X
WHERE site = 'de'
  AND flag = true

我想要这样的输出:

sales | sales_flag | profit | profit_flag

提前致谢。

您可以使用条件聚合:

select 
    sum(sales) as sales,
    sum(case when flag = true then sales end) as sales_flag,
    sum(profit) as profit,
    sum(case when profit = true then sales end) as profit_flag
from x
where site = 'de'