我寫了一個SQL查詢,爲每月的列ipAdress
和ID
創建前10位。結果是正確的,但我需要另一種格式的結果。SQL - 列前10位
你能幫我找到正確的格式嗎?
我的SQL查詢
SELECT
MyMonth,
ipAddress,
ID ,
Records
FROM
(
SELECT
MyMonth ,
ipAddress,
ID,
Records,
ROW_NUMBER() OVER(PARTITION BY MyMonth ORDER BY so.Records DESC) AS RowNum
FROM
(
SELECT
LEFT(DATENAME(month,startDate),3) + ' ''' + RIGHT(YEAR(startDate),2) AS MyMonth
,ipAddress, ID ,COUNT(1) AS Records
FROM
[TEST_AUSWERTUNG].[dbo].[Evaluation]
GROUP BY
LEFT(DATENAME(month,startDate),3) + ' ''' + RIGHT(YEAR(startDate),2) ,ipAddress, ID
)so
)x
WHERE x.RowNum < 11
,其結果是例如
Aug'14 145.998.111.115 14 191481 Aug '14 145.998.991.145 E1 81448 Aug '14 11.14.48.11 P4 44544 Aug '14 145.998.49.149 U4 95814 Aug '14 11.4.949.49 CD 94941 Aug '14 11.4.949.45 XT 99449 Aug '14 11.4.949.45 CD 91188 Aug '14 145.998.49.54 XT 91994 Aug '14 11.4.949.49 XT 91954 Aug '14 145.998.49.44 BM 91444 Jun '14 145.998.111.115 14 118494 Jun '14 145.998.991.145 E1 49915 Jun '14 11.14.48.11 P4 41114 Jun '14 145.998.49.159 XB 49414 Jun '14 145.998.49.149 U4 94449 Jun '14 145.998.49.199 XB 94148 Jun '14 11.4.949.49 CD 99154 Jun '14 11.4.949.45 XT 99154 Jun '14 145.998.49.44 XT 91449 Jun '14 145.998.49.54 XT 91554
但我需要這樣的:
Aug'14 145.998.111.115 14 191481 Jun '14 145.998.111.115 14 118494 Aug '14 145.998.991.145 E1 81448 Jun '14 145.998.991.145 E1 49915 Aug '14 11.14.48.11 P4 44544 Jun '14 11.14.48.11 P4 41114 Aug '14 145.998.49.149 U4 95814 Jun '14 145.998.49.159 XB 49414 Aug '14 11.4.949.49 CD 94941 Jun '14 145.998.49.149 U4 94449 Aug '14 11.4.949.45 XT 99449 Jun '14 145.998.49.199 XB 94148 Aug '14 11.4.949.45 CD 91188 Jun '14 11.4.949.49 CD 99154 Aug '14 145.998.49.54 XT 91994 Jun '14 11.4.949.49 CD 99154 Aug '14 11.4.949.49 XT 91954 Jun '14 11.4.949.45 XT 99154 Aug '14 145.998.49.44 BM 91444 Jun '14 145.998.49.44 XT 91449
任何人有一個解決方案?
在'RowNum'上將'Aug'子集和'Jun'子集合在一起。或者按照'RowNum'的方式分組。有很多關於你可以在這個網站搜索的關鍵點的答案。 – 2014-10-17 08:18:21