我必须每周从Customer
(客户名称,ID)和order
(订单ID,订单金额,订单日期)中找到3位消费最高的客户。如果我今天运行查询,它应该显示订单日期存在的所有星期的前3位。如何在SQL中每周对结果进行分区?
我正在考虑在日期(每周)做一个Partition by
,但我找不到任何方法来做到这一点?有没有人做过每周分区的结果?
我知道这是不对的,但是这是我有:
Select Top 3 customer_name, id OVER (partition by [week])
(
Select c.customer_name, c.id, o.order_amt,
from customer c
Join Order o
on c.id=o.id
group by c.id
)
选择一个数据库:'MySQL的= SQL-server'和这个问题的一个答案可能是显著不同,以一个答案另一个。 –