【发布时间】:2014-03-18 19:14:31
【问题描述】:
使用 Oracle/SQL,我正在寻找一种方法来计算在总和之后高于或低于指定值的不同 ID 的数量。例如,我需要找出去年有多少客户订购了 1,000 美元或更多的商品,无论是一个大订单还是几个小订单。我不需要具体识别每个客户,只需找到超过此数量的客户总数即可。
到目前为止,我能够找到以下订单的总数:
select sum (Order_Amount), Customer_ID
from table.orders_placed
where year = 2013
group by Customer_ID
order by Customer_ID
我也可以这样做:
select count (dinstinct Customer_ID)
from(
select sum (Order_Amount), Customer_ID
from table.orders_placed
where year = 2013
group by Customer_ID
order by Customer_ID
)
但这只是给了我不同 Customer_ID 的总数。我添加的任何其他参数试图缩小“计数”给我的范围都会导致错误。如何指定我想要的 Order_Amount 总额为 1,000 美元或更多?
【问题讨论】:
-
我会考虑一个子查询。
-
我没有意识到 ORACLE 与 MySQL 有多么相似
-
为什么不使用
HAVING? -
您是否尝试为聚合列提供别名,然后使用该别名进行过滤?