作者rockchangnew (rock)
看板Database
标题Re: [SQL ] 如何选择每人最後几笔交易平均?
时间Wed Dec 10 22:26:52 2014
※ 引述《newbiegg (威尔)》之铭言:
: 某表格如下, 纪录顾客的每笔交易
: Customer Amount Date
: 1 $10 10/1/2014
: 2 $15 11/1/2014
: 1 $20 11/2/2014
: 3 $5 11/8/2014
: :
: :
: 请问如何计算每位顾客"过去 10 笔"交易平均? 结果如下:
: Customer Average
: 1 $9.5
: 2 $12
: 3 $8
: :
: 当然, 有些顾客可能全部只有一笔. 有些上百笔. 但只取最後 10 笔平均.
: 谢谢
with tb as(
select
row_number() over(partition by Customer order by Customer,Date desc) as row_id,
* from table)
select Customer,avg(Amount) as Average
From tb
Where row_id<11
group by Customer
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.136.224.65
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Database/M.1418221615.A.F26.html
1F:→ carylorrk: mysql 目前不支援 window function,不过 postgre 或 12/11 03:42
2F:→ carylorrk: T-SQL 可以怎麽做~ 12/11 03:42
3F:→ carylorrk: 基本上跟用 variable 的复杂度是一样的。 12/11 03:43