将两个查询合并为一个查询

时间:2020-10-17 02:21:58

标签: sql postgresql case union

我想计算在销售日期售出的商品数量和商品总数。 我知道如何分别在两个查询上编写。我试图使用联合将它们写入一个查询中,但无法正常工作。我被困在这里,欢迎任何评论

我想编写一个查询以获取在销售日期出售的商品数量,而不是在销售日期出售的商品数量。

这是我的代码:

SELECT COUNT(T.items) AS total_items FROM Transaction AS T JOIN Sale AS S ON T.ID = S.ID ;

SELECT COUNT(T.items) AS discount_items FROM Transaction AS T JOIN Sale AS S ON T.ID = S.ID 
WHERE S.sale_date = T.date

我想使用一个查询来获取total_items和Discount_items。

1 个答案:

答案 0 :(得分:1)

您可以将查询组合为:

SELECT COUNT(T.items) AS total_items,
       SUM(CASE WHEN S.sale_date = T.date THEN 1 ELSE 0 END) as discount_items
FROM Transaction T JOIN
     Sale S
     ON T.ID = S.ID ;

我不知道这是否有用,但是它回答了您的问题。