2014-04-14 4 views
2

У меня есть следующий тип таблицы. Я хочу вывести последнюю запись (последняя) конкретной группы. Пожалуйста, предложите мой запрос sql.Как получить последнюю запись из одной группы

Id Name random number 
    ------------------------- 
    1 A   1233 
    2 A   1778 
    3 A   1221 
    4 B   1298 
    5 B   1289 
    6 C   1267 

Я хочу последняя запись группы A

например

 ID Name Random number 
     ---------------------- 
     3 A  1221 

ответ

5
select id, name, random from table where Name='A' order by id desc limit 1 
+0

Это не ОП requi rement. OP хочет получить запись всей группы выше, это только пример. –

+1

@Broken Heart ღ: "of ** specific ** group" – zerkms

+0

@zerkms вы правы ..... но выше запроса будет дана только запись группы A. –

2

Вот запрос:

select * from tbl where id IN (select max(id) from tbl group by name); 

А вот скрипку: http://sqlfiddle.com/#!2/01d69/8

+1

Это решение избыточного уровня. ОП спросил о конкретной группе явно. – zerkms

+0

@OP запросил определенную группу, поэтому первый ответ правильный. OP не запрашивает последнюю строку на группу, также zerkms - это правильный подзапрос, что уменьшит производительность. –

+1

Спасибо M Khalid Junaid – user3345596

1
SELECT * From Table1 Where [Id] in (
SELECT Max([Id]) as [maxId] From Table1 Where [Name] = 'A') 

Fiddle

+0

Это не требование OP. OP хочет получить запись всей группы выше, это только пример. –

+1

@ Черное сердце ღ: кто вам это сказал? – zerkms

+0

@zerkms OP имеет запись ** например. ** .... –

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