簡體   English   中英

SQL:從最早到最新的約會開始,對每條記錄進行計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM