计算订单列表中的两次出现次数

Count double occurrences in order list

我有一个订单列表,我需要找出哪些订单在不同用户身上多次出现代码 47。例如:

ORDER_ID  CODE USER
111       47   1 
111       47   2
222       47   1
333       47   1
333       47   2
444       47   1   

预期结果是 111 和 333。

我怎样才能做到这一点?

此致

我想你想要聚合 having:

select order_id
from orders o
where code = 47
group by order_id
having min(user) <> max(user);

您也可以将 having 表示为:

having count(distinct user) >= 2

你可以试试下面的-

select order_id from tablename
group by order_id
having count(distinct user)>=1

您也可以通过 row_number() 完成

    Select distinct order_id from

   (select order_id, code, row_number() 
    over
   ( Partition by order_id, code 
     Order by order_id, code) rn
     from 
    tablename
    where user in (1,2)
    ) where rn>=1

但我猜你已经有了一个用户栏,因此我认为你不需要额外的操作

   Select orderid, code from table 
  Group by orderid, code having 
   max(distinct user) >=1