Mysql 如何返回其第一订单值>第二订单值的客户id?
我的表格如下: 订单:订单id、客户id、项目价格、项目数量、订单日期时间 现在我想返回第一个订单值大于第二个订单值的客户idMysql 如何返回其第一订单值>第二订单值的客户id?,mysql,sql,datetime,aggregate-functions,greatest-n-per-group,Mysql,Sql,Datetime,Aggregate Functions,Greatest N Per Group,我的表格如下: 订单:订单id、客户id、项目价格、项目数量、订单日期时间 现在我想返回第一个订单值大于第二个订单值的客户id 很抱歉,我没有任何代码,因为我完全不知道如何解决此问题:一个选项使用窗口函数和聚合: select customer_id from ( select o.*, row_number() over(partition by customer_id order by oder_datetime) rn from orders o ) o
很抱歉,我没有任何代码,因为我完全不知道如何解决此问题:一个选项使用窗口函数和聚合:
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