我正在查詢數據庫以查找系統中所有客戶的最高收入月份。我已經收到了這個查詢,旨在爲客戶提供來自所有數據所在年份的月收入。但我正在努力弄清楚如何從這些數據中獲得最高的每月收入。SQL查詢:爲客戶查找最高收入月/年
數據庫是SQL Server 2008 R2。 這些列是:客戶名稱,年,月和收入。 我甚至嘗試使用Row_Number()並嘗試按客戶名稱/年進行分區並按收入排序。但它沒有奏效。也許我在那裏犯了一些錯誤。
下面是我試圖構建基本查詢的方法。
Select Customer, Year(orderdatetime) as Year, Month(orderdatetime) as Month, SUM(Revenue)
From Orders
Group By Customer, Year(orderdatetime), Month(orderdatetime)
這是我試圖用ROW_NUMBER()
WITH Max_Revenue AS
(
Select Customer, Year(orderdatetime) as Year, Month(orderdatetime) as Month, SUM(Revenue), RowNumber = ROW_NUMBER() OVER(PARTITION By Year Order By Revenue DESC)
From Orders
Group By Customer, Year(orderdatetime), Month(orderdatetime)
)
Select Max_Revenue.Customer, Max_Revenue.Year, Max_Revenue.Month, Max_Revenue.Revenue
From Max_Revenue
Where Max_Revenue.RowNumber = 1
Order By Max_Revenue.Customer asc
的數據我得到的回覆是這樣的:
Customer Month Year Revenue
ABC 2 2012 100
ABC 3 2013 150
ABC 5 2012 200
XYZ 4 2011 500
XYZ 6 2012 650
XYZ 7 2012 800
我想要什麼作爲輸出
Customer Month Year Revenue
ABC 5 2012 200
XYZ 7 2012 800
因此,每個客戶的最佳月份和尊重就收入而言。
嘗試使用 「最大」 像選擇MAX(收入)表 – zxc