Модель последнего устройства пользователя

MediumSQL
07:00
Лучше работает на десктопе
Window FunctionsROW_NUMBERDevice History
Реальный собес00:31:37-00:37:03Первомайская улица 33.m4aСтраница собеса

Есть пользователи, справочник устройств и история устройств пользователя.

Для каждого пользователя, у которого есть хотя бы одна запись в истории, нужно вернуть модель его последнего устройства.

Последнее устройство определяется так:

  • активная запись с end_date IS NULL считается новее закрытых записей;
  • иначе берем максимальный end_date;
  • при равном end_date берем максимальный start_date;
  • при полном tie берем больший device_id.

Верните:

  • user_id;
  • vendor_name;
  • model_name.

Сортировка: user_id ASC.

Schema

CREATE TABLE users (
  user_id INTEGER PRIMARY KEY,
  name TEXT NOT NULL
);

CREATE TABLE devices (
  device_id INTEGER PRIMARY KEY,
  vendor_name TEXT NOT NULL,
  model_name TEXT NOT NULL
);

CREATE TABLE device_history (
  user_id INTEGER NOT NULL,
  device_id INTEGER NOT NULL,
  start_date TEXT NOT NULL,
  end_date TEXT
);
Консоль
Нажмите Run или Ctrl+Enter для запуска