2015-07-26 3 views
-1

У меня есть следующий запрос, который работает нормально за исключением того, что это не группировка, как я хочу, за исключением:Группировка в Max запрос

SELECT 
    oee_main_interim.id, 
    oee_main_interim.NAME, 
    oee_main_interim.S_TYPE 
FROM 
    oee_main_interim 
WHERE 
    oee_main_interim.S_TYPE <>0 
GROUP BY 
    oee_main_interim.id, oee_main_interim.NAME 
HAVING 
    oee_main_interim.id= max(oee_main_interim.id) 

Все три поля являются INT типы. Запрос возвращает максимальные значения id, не группируя NAME, вместо этого он перечисляет более одного NAME. Я хочу просто: Max ID, соответствующее NAME и соответствующее S_TYPE. Так что мой вывод должен быть чем-то вроде этого:

ID NAME  S_TYPE 
1234 1   2 
1345 2   1 
1456 3   2 
1567 4   2 

с ID быть максимально идентификатором таблицы для каждого ИМЕНИ ...

Моих исходных данных в таблице oee_main_interim выглядит следующим образом:

screenshot

Так что все, что я хочу, это выбрать максимальный идентификатор для каждого ИМЯ и показать его соответствующий S_TYPE (как показано выше) и где S_TYPE <> 0.

Моя полная таблица со всеми столбцами выглядит следующим образом:

enter image description here

ответ

0

Этот запрос, с помощью производной таблицы, даст вам максимальный идентификатор для каждого имени, вместе с его s_type:

Select 
    oee_main_interim.id, 
    oee_main_interim.NAME, 
    oee_main_interim.S_TYPE 
From 
    oee_main_interim 
Join 
    (
    select max(id) max_id, name from oee_main_interim group by name 
) a on a.name = oee_main_interim.name and a.max_id = oee_main_interim.id 
Where 
    oee_main_interim.S_TYPE <> 0 

Или вы могли бы использовать коррелировала подзапрос:

Select 
    id, NAME, S_TYPE 
From 
    oee_main_interim o1 
Where 
    S_TYPE <> 0 
And id = (select max(id) from oee_main_interim o2 where o1.name = o2.name); 
+0

извините, но оба этих дие ries не возвращают никаких записей – elstiv

+0

@elstiv Действительно? Это удивительно. Не могли бы вы изменить свой вопрос и добавить некоторые исходные данные? Я не вижу причин, по которым они не будут возвращать _any_ данных. – jpw

+0

Я обновил основной вопрос соответственно. Спасибо – elstiv

Смежные вопросы