【发布时间】:2021-02-26 12:06:52
【问题描述】:
我需要获取 1990 年新买家的数量。 第一个查询说是 17,但第二个说是 29?那么哪一个是错的,为什么?
SELECT DISTINCT COUNT(customer_id) FROM SALES_ORDER WHERE
EXTRACT(YEAR FROM order_date) = 1990
AND
customer_id NOT IN (SELECT customer_id FROM SALES_ORDER WHERE EXTRACT(YEAR FROM order_date) < 1990);
SELECT DISTINCT COUNT(customer_id) FROM SALES_ORDER WHERE
customer_id IN (SELECT customer_id FROM SALES_ORDER WHERE EXTRACT(YEAR FROM order_date) = 1990)
AND
customer_id NOT IN (SELECT customer_id FROM SALES_ORDER WHERE EXTRACT(YEAR FROM order_date) < 1990);
【问题讨论】:
-
也许你想要
count(distinct...)而不是distinct count(...) -
@jjanes 你是对的,也许把它作为答案发布?
标签: sql postgresql datetime count date-arithmetic