如何返回第一个订单价值>第二个订单价值的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? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

查找Salesperson第二高的销售SQL

SQL:我如何按顺序列出所有前2个订单的客户ID:第一个订单是帽子,第二个订单是太阳镜? [关闭]

如何根据总订单价值和邮政组获取报告

获取woocommerce获取订单总价值[重复]

将第二个活动的价值保存到第一个活动,而不会丢失更新的数据

如何使用第二个值将用户价值添加到 CMTimeMake