[英]SQL: Count each record, starting with the oldest to newest appointment
我有一個如下表,其中我需要對每個約會進行計數並按ID和Type進行分組,然后按最舊的約會進行排序,並給它一個數字並加起來。
我正在使用MS SQL服務器管理工作室。
Select ID, Date, Type
From Appointment
Where Type='Post-op'
之前
ID | Date | Type
123 | 2013-01-01 | Post-op
123 | 2013-01-21 | Post-op
123 | 2013-02-28 | Post-op
123 | 2013-05-16 | Post-op
124 | 2013-01-21 | Post-op
124 | 2013-02-12 | Post-op
后
ID | Date | Type | Count
123 | 2013-01-01 | Post-op | 1
123 | 2013-01-21 | Post-op | 2
123 | 2013-02-28 | Post-op | 3
123 | 2013-05-16 | Post-op | 4
124 | 2013-01-21 | Post-op | 1
124 | 2013-02-12 | Post-op | 2
謝謝
在SELECT中使用窗口功能
SELECT id
,[date]
,type
,ROW_NUMBER() OVER (PARTITION BY ID ORDER BY [date] ) AS seq
FROM Appointment
WHERE Type = 'Post-op'
SqlFiddle: http ://sqlfiddle.com/#!3/f3a4f/1
似乎您在ROW_NUMBER之后
;with TempData as (Select ID ,Date,Type DataCount =ROW_NUMBER()
over(PARTITION By Id Order By Date)
From Appointment
Where Type='Post-op')
Select * from TempData
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.