如何返回第一个订单价值>第二个订单价值的customer_id? [关闭]
Posted
技术标签:
【中文标题】如何返回第一个订单价值>第二个订单价值的customer_id? [关闭]【英文标题】:How do I return customer_id whose first order value > second order value? [closed] 【发布时间】:2021-03-20 06:40:18 【问题描述】:我有一张如下表:
订单:order_id、customer_id、item_price、item_quantity、order_datetime
现在我想返回第一个订单值大于第二个订单值的 customer_id。
对不起,我没有任何代码,因为我完全不知道如何回答这个问题:(
【问题讨论】:
【参考方案1】:一个选项使用窗口函数和聚合:
select customer_id
from (
select o.*,
row_number() over(partition by customer_id order by oder_datetime) rn
from orders o
) o
where rn <= 2
group by customer_id
having sum(
case when rn = 1
then item_price * item_quantity
else - item_price * item_quantity
end
) > 0
【讨论】:
以上是关于如何返回第一个订单价值>第二个订单价值的customer_id? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章