以下查询返回存在于 Where transaction_date> '3/1/2017' 并且所有日期的总和(金额(> 3000 的任何用户。
我只想返回 3000 年 3 月 1 日之后的总和(金额(> 2017 的用户。 换句话说,用户只需要在 2017 年 3 月 1 日之后的交易中获得至少 3000 美元的总和(金额(。
SELECT User
FROM Source
Where transaction_date > '3/1/2017'
GROUP BY User
HAVING sum(AMOUNT) > 3000
> WHERE
在聚合之前进行处理。 因此,您的查询仅考虑该日期之后的交易。
我强烈建议您使用 ISO 标准日期格式并将查询编写为:
SELECT User
FROM Source
WHERE transaction_date > '2017-03-01'
GROUP BY User
HAVING SUM(AMOUNT) > 3000;
如果结果有问题,可能是由于日期格式造成的。
用于to_date格式化日期和=>的函数,至少需要您需要的数量。
SELECT User
FROM Source
Where transaction_date > to_date( '3/1/2017','dd/mm/rrrr')
GROUP BY User
HAVING sum(AMOUNT) => 3000
如果你想包含 3000,请在 Gordon 的代码中使用>=
SUM(AMOUNT) >= 3000
试试这个:
选择用户从源其中(transaction_date(日期> '2017-03-01'按用户分组金额>3000;
如果问题仍然存在,请在表中共享您的数据格式。