1、SQL文法
SELECT M、N
から(
SELECT ROW_NUMBERを()の上に(パーティションによって M個の順序 によって、n個のDESC)RN、- Mパケット、それぞれ逆の順序Nそれぞれの番号に対して要求パケット
M、N
から 表
WHERE ...
)W
WHERE w.rn <= 10 ; 10未満の数
順序 によって M、N- DESC
顧客データを取得するためにヶ月前2、10例
元のデータ
ケースSQL
select
StatDate,
OrderCount,
AmountTotal,
CustomerUnitPrice
from
(
select
row_number () over (partition by t.StatDate order by t.AmountTotal desc) rn,
*
from
(
select
CONVERT(varchar(7), AuditTime, 120) StatDate,
FBM_USER_ID CustomerId,
Count(1) OrderCount,
sum(isnull(FBM_BLL_BOOK_TOTAL,0)) AmountTotal,
case when sum(isnull(FBM_BLL_BOOK_TOTAL,0)) >0 then Round((sum(isnull(FBM_BLL_BOOK_TOTAL,0)) / Count(1) + 0.0), 4) else 0 end as CustomerUnitPrice
from
F_CUST_BOOK_MSTR b
where auditStatus=2 and AuditTime is not null
and AuditTime>='2017-06-01'
group by CONVERT(varchar(7), AuditTime, 120),FBM_USER_ID
) t
) tt
where rn <=10
order by StatDate desc
查询结果