2009-03-27 12 views
4

Ich habe Daten wie folgt (col2 vom Typ Datum ist)SQL select distinct Reihen

 
| col1 |  col2   | 
------------------------------ 
| 1 | 17/10/2007 07:19:07 | 
| 1 | 17/10/2007 07:18:56 | 
| 1 | 31/12/2070   | 
| 2 | 28/11/2008 15:23:14 | 
| 2 | 31/12/2070   | 

Wie Reihen wählen würde, die col1 unterscheidet und der Wert von col2 am größten ist. Gefallen Sie diese

 
| col1 |  col2   | 
------------------------------ 
| 1 | 31/12/2070   | 
| 2 | 31/12/2070   | 

Antwort

16
SELECT col1, MAX(col2) FROM some_table GROUP BY col1; 
4
select col1, max(col2) 
from table 
group by col1 
0

In Oracle und MS SQL:

SELECT * 
FROM (
     SELECT t.*, ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col2 DESC) rn 
     FROM table t 
     ) q 
WHERE rn = 1 

Dies wird weitere Spalten auswählen zusammen mit col1 und col2

+0

vermisst habe ich denke du meinst „wählen andere Spalten .. " –

+0

Sicher mache ich, danke – Quassnoi

2

SELECT Col1, MAX (Col2) FROM Yourtable GROUP BY Col1

3

i rechnen wäre es

select col1, max (col2) von DemoTable Gruppe von col1

sein, wenn ich etwas offensichtlich

3
select col1, max(col2) from MyTable 
group by col1