2017-08-16 135 views
0

我有一個包含多個僱員的定時活動數據的表。從這張表中,我只需要使用[日期](日期)和[時間]列,僅選擇活動是某一特定sa_person當天的第一個活動的行。 [活動ID]列對於事件序列不可靠,因爲某些日期/時間是手動按順序輸入的。SQL使用時間爲每個人選擇每天第一個活動的行

以下是起始表和期望結果的圖像。

非常感謝您的幫助!

表結構:

Table Structure

所需的結果:

Desired Result

+0

具有擴展的數據樣本爲.csv在這裏添加[鏈接](https://www.dropbox.com/s/ajnifyt76ca9ifg/Sample.csv?dl=0) –

回答

1

可以如下查詢:

Select * from (
    Select *, RowN = Row_Number() over (partition by saperson, [Day] order by [time] asc) from yourtable) a 
Where a.RowN = 1 

它始終是更好地提供數據和文本,以便我們可以檢查數據...

你可以使用上面(1)的關係以及

Select top(1) with ties * from yourtable 
Order by Row_Number() over (partition by saperson, [Day] order by [time]) 
+0

'desc'?你的意思是'asc'? 「...是給定sa_person當天的***第一個***活動...」 – xQbert

+0

是的,第一個[時間]條目我刪除了那個desc ...謝謝 –

+0

感謝您的快速回復。我已經以csv格式添加了上面的鏈接和擴展數據。 –