首页 > 解决方案 > 将两个查询合并为一个查询

问题描述

我想计算在销售日期售出的商品数量和商品总数。我知道如何分别写两个查询。我尝试使用联合将它们写入一个查询,但它不起作用。我一直呆在这里,欢迎任何评论

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

这是我的代码:

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。

标签: sqlpostgresqlcaseunion

解决方案


您可以将查询组合为:

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 ;

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


推荐阅读