选择客户的随机订单

时间:2017-07-15 11:50:53

标签: sql hana

我有一张顾客及其订单表。我想选择每个客户的随机订单。

示例表

customer | orders
---------+---------
customerA| Order1
customerA| Order2
CustomerA| Order3
customerB| Order1
customerB| Order2
customerB| Order3
CustomerC| Order1
customerC| Order2

结果表

customer | orders
---------+---------
customerA| Order2
customerB| Order1
CustomerC| Order1

有办法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用row_number()(和ANSI标准功能)。但是,计算随机数因数据库而异。这是一个想法:

select t.*
from (select t.*,
             row_number() over (partition by customer order by random()) as seqnum
      from t
     ) t
where seqnum = 1;

一些随机数函数:

  • SQL Server:newid()
  • Postgres:random()
  • Oracle:dbms_random.value
  • Teradata:random(1, 999999999)
  • DB2:rand()
  • SAP Hana:rand()
相关问题