一般來說,如果要找出資料裏面的第一筆
我們一定直覺式的用SELECT TOP 1 ...來取得。
如果要取得每個GROUP的第一筆,或是最大值時…
TOP 1這指令就不合適了,因為TOP 1是找出所有資料的「第一筆」,並非找出每個GROUP的第一筆。
我們可以用CTE的方式來先取得您要的資料,後續也可以再和其他table來join
假設我們今天如果要找出[所有產值] 這個table中,某位員工歷年所有資料的最大產值是在那個月份
[所有產值]的欄位介紹如下:
1. [員工代碼]
2. [員工產值]
3. [年月]
;WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY
[員工代碼]ORDER BY
[員工產值]DESC) AS rn FROM
[所有產值]) SELECT * FROM cte WHERE rn = 1
如此一來就知道員工在那個月分有著最高的產值
全站熱搜
留言列表