我試圖在結果集中獲得每個分組行的TOP 1結果。如何從這個GROUP BY結果中獲得TOP 1?
Id LogType CreatedOn
===============================
1 Red 2000-01-02T12:34:56Z
2 Red 2000-01-02T12:34:56Z
3 Blue 2000-01-02T12:34:56Z
4 Green 2000-01-02T12:35:56Z
5 Red 2000-01-02T12:36:56Z
6 Red 2000-01-02T12:37:56Z
7 Blue 2000-01-02T12:38:56Z
8 Green 2000-01-02T12:39:56Z
預期結果
LogType Count MostRecent
==================================
Red 4 2000-01-02T12:37:56Z
Blue 2 2000-01-02T12:38:56Z
Green 2 2000-01-02T12:39:56Z
This has all been setup in this Sql Fiddle。
我得到了COUNT
(這很容易),但我不知道如何獲得最新的,然後將其鏈接回以前的結果。我正在考慮ROW_NUMBER()/PARTITION ORDER BY CreatedOn DESC
和= 1
篩選..但我堅持加入。
注意:如果對軟件特定關鍵字有任何疑問,我正在使用SQL Server 2012。
TIL:你可以做一個'COUNT(..)OVER(PARTITION ...)'。我總是完成了'ROW_NUMBER()OVER..'。 :HI-5: – 2015-02-11 01:58:02