SQL выбирает отдельные строки - PullRequest
4 голосов
/ 27 марта 2009

У меня есть такие данные (col2 имеет тип Date)

| 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          |

Как бы выбрать строки, у которых col1 отличается, а значение col2 самое большое. Как это

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

Ответы [ 6 ]

16 голосов
/ 27 марта 2009
SELECT col1, MAX(col2) FROM some_table GROUP BY col1;
4 голосов
/ 27 марта 2009
 select col1, max(col2)
 from table
 group by col1
3 голосов
/ 27 марта 2009
select col1, max(col2) from MyTable
group by col1
3 голосов
/ 27 марта 2009

Я думаю, это будет

выберите col1, максимум (col2) из DemoTable сгруппировать по col1

если я не пропустил что-то очевидное

2 голосов
/ 27 марта 2009

ВЫБЕРИТЕ Col1, МАКС. (Col2) ИЗ ГРУППЫ YourTable ПО Col1

0 голосов
/ 27 марта 2009

В Oracle и MS SQL:

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

Это выберет другие столбцы вместе с col1 и col2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...