powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Определение последней строки. проблемы с max()
4 сообщений из 4, страница 1 из 1
Определение последней строки. проблемы с max()
    #35019681
Angel13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть задача: вытащить из таблицы последнюю по дате строку касающиеся каждого клиента. Клиент определяеться полем customer_profile_id, дата - card_created_datetime

Сейчас это работает так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT  
     card_profile.card_profile_id, 
     card_profile.customer_profile_id, 
     card_profile.card_number, 
     card_profile.initial_card_creator, 
     card_profile.card_type, 
     card_profile.card_created_datetime, 
     card_profile.card_updated_datetime
   FROM card_profile
  WHERE ((card_profile.customer_profile_id, card_profile.card_created_datetime) IN 
            ( SELECT card_profile.customer_profile_id, max(card_profile.card_created_datetime) AS max
                FROM card_profile
            GROUP BY card_profile.customer_profile_id))

На точечных запросах (по 1-2 клиентам) работает нормально, но когда нужно построить отчёт по десяткам тысяч клиентов запрос просто умирает. в Оrа для таких случаев есть аналитические функции. Как это оптимальнее сделать в PG?
...
Рейтинг: 0 / 0
Определение последней строки. проблемы с max()
    #35019705
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я когда-то поднимал тему, мне кажется, что это что-то близкое.
...
Рейтинг: 0 / 0
Определение последней строки. проблемы с max()
    #35019706
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel13Как это оптимальнее сделать в PG?
Код: plaintext
1.
2.
3.
4.
select cp.card_created_datetime 
from card_profile cp
where ...
order by cp.card_created_datetime desc
limit  1 
Ну и конечно создать индексы.
...
Рейтинг: 0 / 0
Определение последней строки. проблемы с max()
    #35020414
Angel13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serik Akhmetov select cp.card_created_datetime
from card_profile cp
where ...
order by cp.card_created_datetime desc
limit 1

Спасибо! Отлично работает.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Определение последней строки. проблемы с max()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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