Бази даних · Middle · Запитання 31 з 75

Що дозволяє LEFT JOIN LATERAL?

SELECT u.name, o.*
FROM users u
LEFT JOIN LATERAL (
  SELECT * FROM orders WHERE orders.user_id = u.id
  ORDER BY created_at DESC LIMIT 3
) o ON true;

Пояснення

Це охайний спосіб написати «топ N у кожній групі». З індексом на (user_id, created_at) кожен пошук дешевий.

Де почитати

Помилка в запитанні

Бази даних · Middle · запитання 31

Перевірте себе

Пройдіть тест Бази даних · Middle: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест