这个问题已经被类似的介绍过了,但是我很挣扎。TSQL Row_Number
我需要找到根据客户的购买模式前N个销售..
理想这需要由客户前N个由个月的时间由一年,但现在我只是在整体看前N D B。
我的查询是这样的:
-- QUERY TO SHOW TOP 2 CUSTOMER INVOICES BY CUSTOMER BY MONTH
SELECT
bill_to_code,
INVOICE_NUMBER,
SUM(INVOICE_AMOUNT_CORP) AS 'SALES',
ROW_NUMBER() OVER (PARTITION BY bill_to_code ORDER BY SUM(INVOICE_AMOUNT_CORP) DESC) AS 'Row'
FROM
FACT_OM_INVOICE
JOIN dim_customer_bill_to ON FACT_OM_INVOICE.dim_customer_bill_to_key = dim_customer_bill_to.dim_customer_bill_to_key
--WHERE
-- 'ROW' < 2
GROUP BY
invoice_number,
Dim_customer_bill_to.bill_to_code
我无法理解给定的限制行= < N.
请帮忙解决方案。
您的查询看起来并不遥远。行号将根据订单对每个组中的记录进行编号。然后,您可以限制每组的前两条记录。 –
你不需要'ROW_NUMBER',只需要'SELECT TOP 2'顶级'ORDER BY' – Dai