2016-05-10 4 views
-1

позволяет сказатькак найти следующий максимум (ID) в таблице

Моя таблица содержит

Id Status 
1 0 
2 1 
3 0 
4 0 
5 1 
6 0 

Мне нужен выход, как

Id Status 
5  1 

Я попытался как Макс (ид), но дает выходные данные как

id status 
6  0 
+0

Каковы критерии отбора? – Strawberry

+0

Итак ... вы хотите MAX (статус). нет? – Chris

+0

Мне не нужен MAX (статус) и все ... –

ответ

0

Попробуйте следующее:

SELECT id, status 
FROM myTable ORDER BY `id` DESC LIMIT 1 , 1 

Я предположил, что вы ищете второй высоких Id рекордных значений.

0

Я думаю, вы хотели бы иметь max (id), где Status = 1?

Затем используйте select max(id) from table where Status=1

1

Я могу только предположить, что вы хотите знать о максимальном ид этих записей, имеющих статус = 1, верно? Затем используйте

select max(id) from mytable where Status=1 
0

Так как вы хотите, чтобы получить абсолютный максимум от обеих колонок используйте:

SELECT GREATEST(MAX(id), MAX(status)); 
0

Попробуйте также

select Id,Status 
    from table 
    where Id=(
select MAX(Id) from table where Id <> (select MAX(Id) from table) 


) 
0

Ваш вопрос немного неясно, что это вы на самом деле хотеть. Из вашего примера, я думаю, вам нужен максимальный ID для максимального статуса.

Это максимальный идентификатор для каждого состояния:

select max(id), status from table 
group by status; 

Это приведет к 5,1 и 6,0.

Затем вы можете отфильтровать то, что вам не нужно, например.

select * from (
    select max(id), status from t 
    group by status 
) maxidperstatus 
where maxidperstatus.status = (select max(status) from t); 
0

Я предполагаю, что вы хотите, Id, где статус является самым большим Попробуйте

select max(status),id from table group by id order by max(status) DESC 
Смежные вопросы