[小菜一碟] SQL Server 使用 FIRST_VALUE 及 LAST_VALUE 來取得第一筆資料列及最後一筆資料列的資料

之前的報表,老闆覺得還不夠,他還想再看到一些數據,於是就開需求了「Johnny 啊,我想再看到每個分店每月銷售額跟他們最好及最差的那一個月相比,看看差了多少百分比。」,當然沒問題,付錢就行。

從 SQL Server 2012 開始增加了兩個函數 FIRST_VALUELAST_VALUE,利用它們可以讓我們取得查詢結果的第一筆資料列及最後一筆資料列的資料,我們就用它們來抓出每間分店最好及最差的銷售額。

其中大家一定注意到查詢最佳銷售額(BestAmount)加了一長串的東西 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING,這個是 FIRST_VALUE 及 LAST_VALUE 函數先天上的設計,詳細的說明請參考被誤會的函數 FIRST_VALUE 及 LAST_VALUE

如果我們不想加那一長串的東西該怎麼做? 只要改使用 FIRST_VALUE 函數,然後降冪排序就行了,結果是一樣的。

接著計算當月銷售額與最好及最差的相差百分比,就完成了。

C# 指南 ASP.NET 教學 ASP.NET MVC 指引
Azure SQL Database 教學 SQL Server 教學 Xamarin.Forms 教學