[英]Group and count records in a SQL Server table with first occurrence by group (PARTITION BY)
我有一個包含以下列的表格:
ID - int
Time - DateTime
Message - nvarchar(max)
我想 select 不同的消息,每條消息的出現次數和每條消息的第一次。 我還想避免嵌套 SQL。
這是我正在嘗試構建的 SQL 的示例:
SELECT [Message], FIRST_VALUE([Time]) OVER(PARTITION BY [Message] order by [Time]), COUNT(*)
FROM MyTable
GROUP BY [Time]
ORDER BY [Time]
它不起作用,但我相信這是一個很好的起點。 我應該如何更改此 SQL 以使其正常工作?
我想 select 不同的消息 = GROUP BY [Message]
每條消息的出現次數 = count([Message])
每條消息的第一次 = min([TIME])
SELECT [Message], min([TIME]), count([Message]) FROM MyTable GROUP BY [Message]
這是一個小演示:
您必須將message
字段添加到group by
語句,並且不需要使用 window function。 僅使用min()
聚合 function。
SELECT [Message], MIN([Time]) as First_Time, COUNT(*)
FROM MyTable
GROUP BY [Message]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.