E
Size: a a a
GK
GK
А
WITH d AS (
SELECT 1 id, 'comment10' comment, 1 item_id
UNION ALL SELECT 2, 'comment1', 1 val
UNION ALL SELECT 3, 'comment3', 2 val
UNION ALL SELECT 4, 'comment4', 2 val
)
, item_ids AS (
SELECT DISTINCT item_id
FROM d
ORDER BY id DESC
LIMIT 20
)
, t AS (
SELECT id, comment, item_id
, ROW_NUMBER() OVER (PARTITION BY item_id ORDER BY id DESC) rn
FROM d
WHERE item_id IN (SELECT item_id FROM item_ids)
)
SELECT id, comment, item_id
FROM t
WHERE rn = 1
А
ORDER BY clause is not in SELECT list, references column 'd.id' which is not in SELECT list; this is incompatible with DISTINCT
GK
WITH d AS (
SELECT 1 id, 'comment10' comment, 1 item_id
UNION ALL SELECT 2, 'comment1', 1 val
UNION ALL SELECT 3, 'comment3', 2 val
UNION ALL SELECT 4, 'comment4', 2 val
)
, item_ids AS (
SELECT DISTINCT item_id
FROM d
ORDER BY id DESC
LIMIT 20
)
, t AS (
SELECT id, comment, item_id
, ROW_NUMBER() OVER (PARTITION BY item_id ORDER BY id DESC) rn
FROM d
WHERE item_id IN (SELECT item_id FROM item_ids)
)
SELECT id, comment, item_id
FROM t
WHERE rn = 1
А
А
GK
А
WITH d AS (
SELECT 1 id, 'comment10' comment, 1 item_id
UNION ALL SELECT 2, 'comment1', 1 val
UNION ALL SELECT 3, 'comment3', 2 val
UNION ALL SELECT 4, 'comment4', 2 val
)
, item_ids AS (
SELECT DISTINCT id + NULL id, item_id
FROM d
ORDER BY id DESC
LIMIT 20
)
, t AS (
SELECT id, comment, item_id
, ROW_NUMBER() OVER (PARTITION BY item_id ORDER BY id DESC) rn
FROM d
WHERE item_id IN (SELECT item_id FROM item_ids)
)
SELECT id, comment, item_id
FROM t
WHERE rn = 1
А
GK
А
A
A