![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Доброго времени суток!
У меня возник затык с написанием небольшого (?) SQL-запроса, что-то ничего на ум полезного не приходит Имеется бд в Postgres 9.2, в которой находится таблица "documents", с полями Id (bigint), PersonId (bigint), DateOfIssue (date) Из этой таблицы нужно получить идентификаторы (Id) документов по каждому человеку (PersonId), у которых дата выдачи документа (DateOfIssue) максимальна. По каждому человеку нужно получить строго один идентификатор. Если у человека может несколько документов с одинаковой датой выдачи, то выбрать следует наибольший Id Моих крохотных знаний в SQL хватило только на то, чтобы получить дату самого "свежего" документа, но по ней много не наработаешь Код:
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
так попробуй
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Спасибо, в точку
![]()
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#4 | |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]() Цитата:
Код:
В разработке: воспроизводственный контур ИТ
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]() Код:
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Просто max(id)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#7 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Я код вслепую пишу, без сервера, так что могут быть нестыковки.
Еще можно с having попробовать, вообще просто будет: Код:
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Просто max(id) тоже нельзя,
Цитата:
Благодарить в репутацию. Проклинать — туда же
![]() |
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Так на MS SQL 12 прокатило. С group by беда
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Тогда запрос с аналитической функцией можно использовать для связи с другими таблицами. Скажем, если брать PersonId из таблицы Persons, где Id уникален, distinct делать не придется.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" | Alexsandrr | Microsoft Office Excel | 4 | 19.10.2013 14:22 |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
Заполнение "шапки" документа в xls через Access | sahtheey | Microsoft Office Access | 7 | 05.10.2009 13:00 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |