Запрос на простом SQL работает - на Postgresql это не работает

Рейтинг: -2Ответов: 1Опубликовано: 01.08.2023

Есть две таблицы, образно в одной фамилии, вторая таблица содержит ID клиента и название товара что купил клиент. Клиент может купить несколько товаров, и требуется вывести последние купленные товары каждым клиентом. Вот запрос на чистом SQL:

select
  db_client.client_title as Client,
  db_product.product_title as Product
FROM db_client
INNER JOIN db_product on db_client.db_client_id = db_product.db_client_id
group by client_title
having max(db_product_id);

Все работает и вроде как даже верно) но при попытке все это повторить на Postgesql - фиаско.... Уже просто любопытно в чем подвох?

Ответы

▲ -2

а если так:

    SELECT Client, Product
FROM (
    SELECT
        db_client.client_title AS Client,
        db_product.product_title AS Product,
        ROW_NUMBER() OVER (PARTITION BY db_client.db_client_id ORDER BY db_product.purchase_date DESC) AS rn
    FROM
        db_client
    INNER JOIN
        db_product ON db_client.db_client_id = db_product.db_client_id
) AS subquery
WHERE rn = 1;