powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите построить запрос, please.
5 сообщений из 5, страница 1 из 1
Помогите построить запрос, please.
    #33640417
AVN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чувствую что должно быть просто, а составить быстрый запрос не получается.
Итак, есть две таблицы. Одна маленькая (10 строк) t1, в ней всего два поля. Одно из них id со значениями от 1 до 10. Вторая таблица (t2) большая, милионы записей. В ней есть поля id, values, timestamp. Значения id в обоих табл. одинаковое (1-10). Необходимо найти для каждого поля id из первой таблицы самую последнюю по времени запись во второй таблице.

Для отдельно взятого id понятно:
select * from t2 where t2.id=t1.id order by timestamp limit 1

А вот как это все объеденить чтобы получить табличку типа
id timestamp
1 max(timestamp for id=1)
2 max(timestamp for id=2)
3 max(timestamp for id=3)
...

Агрегатной функцией max() пользоваться не хотелось бы...
...
Рейтинг: 0 / 0
Помогите построить запрос, please.
    #33640512
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какой версии PG? Если 8.1 то он max/min считает по индексу.
...
Рейтинг: 0 / 0
Помогите построить запрос, please.
    #33640537
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну а если версия ниже то можно попробовать:
http://warayg.narod.ru/context/bd/SQL/u_sql/3-3-5.htm

т.е. что-то типа этого
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select 
         table1.id,
         table1.timestamp 
from 
         t2 as table1  
where  
         table1.timestamp = (
                                    select 
                                          table2.timestamp 
                                    from 
                                          t2 as table2
                                    where 
                                          table2.id=table1.id 
                                    order by 
                                           timestamp limit  1 )
...
Рейтинг: 0 / 0
Помогите построить запрос, please.
    #33640715
AVN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChameLe0nА какой версии PG? Если 8.1 то он max/min считает по индексу.Хм, приятная неожиданность.
Да, версия 8.1
Надо попробовать.
...
Рейтинг: 0 / 0
Помогите построить запрос, please.
    #33644662
Carrie_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select distinct on (t2.id) t2.id, t2.timestamp from t1, t2 where t2.id=t1.id order by t2.timestamp desc
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите построить запрос, please.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]