2016-02-01 3 views
-2

Мой Стол:SQL Query - Получить последние ставки

Date    Code  Rate 
----    ----  ---- 
2015-01-01   1   100 
2015-01-01   2   200 
2015-01-01   3   300 
2015-06-01   1   150 

Как я могу получить последние ставки (по дате), как:

Date    Code  Rate 
----    ----  ---- 
2015-01-01   2   200 
2015-01-01   3   300 
2015-06-01   1   150 

SQL Query?

+0

Вы пробовали что-нибудь? – B0Andrew

+0

Взгляните на 'ROW_NUMBER' –

+0

используйте' group by Code' с 'select max (Rate) as Rate' – krtek

ответ

1
WITH cte AS (
    SELECT 
     *, 
     ROW_NUMBER() OVER (PARTITION BY Code ORDER BY Date DESC) rn 
    FROM yourtable 
) 
SELECT 
     Date, 
     Code, 
     Rate 
FROM cte 
WHERE rn=1 
0

Вы можете сделать это с подзапрос Попробуйте это:

SELECT * FROM (
    SELECT * FROM your_table ORDER BY date DESC LIMIT 5 
) sub 
ORDER BY date ASC 

Этот код получает последние 5 строк из таблицы.

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. –

+0

Спасибо за комментарий ур. Я обновлю через минуту :) @ greg-449 –

0

Попробуйте это:

выберите Дату, код, Оценить из ( выберите ROW_NUMBER() над (разделом по кодовому порядку по дате по алфавиту) как идентификатор, дата, код, скорость от yourTable ) x где Id = 1 порядок по времени