2017-05-22 83 views
1

resive最大值爲2的結果在我的表中我有不同類型(MyType)的相同日期。我想恢復最大值。創建(日期)> 2017-04-10時每個不同MyType的2個結果。在列MyType

我的約會:

ID MyType Created 
1 A  2017-04-09 
2 C  2017-04-09 
3 D  2017-04-09 
4 A  2017-04-12 
5 A  2017-07-09 
6 A  2017-11-08 
7 C  2017-05-09 
8 C  2017-09-12 
9 C  2017-10-01 
10 B  2017-04-09 
11 D  2017-05-17 

預期的結果:

ID MyType Created 
4 A  2017-04-12 
5 A  2017-07-09 
7 C  2017-05-09 
8 C  2017-09-12 
11 D  2017-05-17 

如何接收各的MyType的列的最大2的結果?

+0

參見:[?爲什麼要我爲了什麼,在我看來是一個非常簡單的SQL查詢提供MCVE(https://meta.stackoverflow.com/questions/333952/why-should-i-提供一個mcve爲什麼似乎對我來說是一個非常簡單的sql查詢) – Strawberry

+0

我不認爲你可以很容易地做到這一點沒有會話變量。 –

+0

@TimBiegeleisen FWIW,我認爲你可以;-) - 雖然它不會很好地擴展。 – Strawberry

回答

-1
SELECT ID, 
    MyType, 
    CreatedDate 
FROM 
     (Select ID, 
       MyType, 
       CreatedDate, 
       ROW_NUMBER() OVER (PARTITION BY ID Order by CreatedDate desc) [RN] 
     From YourTable) A 
WHERE 
    A.RN IN (1,2) 
ORDER BY 
    CreatedDate 
+0

這將是一個很好的答案...如果OP不使用mysql – Strawberry

+0

@Strawberry我通過PHP(doctrine2)連接到數據庫以接收日期 – Grene

相關問題