Страница 1 из 1

Выбор данных с подсчетом их количества

Добавлено: 17 апр 2006, 15:51
Kolinus
Добрый день.
Дано: таблица таблица1 в которой есть много полей, но интересуют следующие - имя, дата модификации, идентификатор.

идентификатор - уникален, имя может быть не уникально.

Необходимо:
выбрать из таблицы идентификаторы, тех элементов которые для каждого имени были последний раз модифицированы с указанием числа таких имен в таблице.
ТО есть
1 имя1 13.02.03
2 имя2 13.02.03
3 имя1 12.02.03
4 имя2 15.02.03
5 имя3 16.02.03

запрос должен вернуть
1 2
4 2
5 1

реально ли это сделать одним запросом, или необходимо два и результаты сопоставлять в коде?

Заранее спасибо.

P.S. если кого-то интересует смысл такого извращения, то ответ прост - необходимо показать последние элементы для каждого имени, при этом показав особую иконку если еще имеются элементы с таким же именем.

Добавлено: 17 апр 2006, 18:00
Игорь Акопян
не очень я понял идентификатором *чего* является первое число... похоже на ID записи

Добавлено: 17 апр 2006, 18:48
Kolinus
вообще - идентификатор записи

Добавлено: 18 апр 2006, 09:47
alexx
B тaком дyxe:

Код: Выделить всё

select max(id), imja, count(date) from your_table
дoлжнo cpaбoтaть

Добавлено: 18 апр 2006, 18:17
AiK

Код: Выделить всё

select 
    row_id,
    (select count(*) from tmp t3 where t3.row_name = t1.row_name) as cnt
from 
    tmp as t1
where
    t1.date1 in (select max(t2.date1) from tmp t2 where t2.row_name =t1.row_name)

Добавлено: 18 апр 2006, 18:40
Kolinus
Aik огромное спасибо.
Сразу тогда еще один вопрос - какую книгу по SQL посоветуешь - сколько по инету ни шарился нигде в доках не видел что можно вот так вот вставлять еще и селект :( , потому как все кроме подсчета заимплементил сам за протекшее время.

Добавлено: 18 апр 2006, 19:04
AiK
Гм. Так вот сразу и не посоветую. Первая книжка по ANSI SQL была Маслова. Там есс-но таких наворотов не было.
Дальше учился у старших товарищей и по книгам SyBooks и Books Online (обе доступны через и-нет, вторая, кажется полностью продублирована в MSDN). Там очень много примеров всяких. Соответствующие разделы называются nested [sub]queries. Для подготовки к экзамену использовал книжки серии Официальный тест от издательства Питер и Реализация баз данных от Microsoft Press (соответственно для экзамена 70-029 MS SQL Server 7.0 Database Development & Maintenance). Обе книжки русские, но, если честно, скорее расчитаны для расширения кругозора для успешной сдачи экзамена, чем для решения практических задач. А больше всего понравилась книга, под названием что-то вроде MS SQL Server Administrator Survival Guide. Огромный талмуд на английском языке. Там есть всё, хотя есс-но чуть больший уклон сделан в сторону тюнинга сервера.