2014-09-05 2 views
0

Я использую Oracle 11G.Как получить простое поле, сгруппированное по полю?

я получил следующую таблицу в базе данных: enter image description here

я хотел бы получить в поле «Значение» для каждого последнего ID_NUMBER. Например, из приведенных выше таблиц, я хотел бы получить строки:

24/08 1 8

03/09-95

мне удалось получить дату и ID_NUMBER для каждого последний номер Id_Number с использованием:

select max(Date), Id_Number from table group by Id_Number 

Но я не вижу, как я могу получить «Значение». Можете ли вы мне помочь?

+1

возможно дубликат [Получение последней записи в каждой группе] (http://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each- группа) – Bulat

ответ

1

Вот что я считаю стандартное решение SQL:

SELECT * FROM table t 
WHERE NOT EXISTS 
(SELECT * FROM table WHERE t.id_number = id_number AND date > t.date) 

Вы можете посмотреть на вопросы с «First/Последняя запись в группе» в названии, и вы найдете много других вариантов.

1

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

select t1.* 
    from YOUR_TABLE t1 
    , (
     select min(date) dat 
      , id_number 
      from YOUR_TABLE 
     group by id_number 
     ) t2 
where t1.date = t2.dat 
    and t1.id_number = t2.id_number 
Смежные вопросы