К задачам

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

СредняяSQL
Лучше работает на десктопе
Оконные функцииROW_NUMBERИстория устройств

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

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

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

  • активная запись с 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
);
Код
Python · Ctrl/⌘ + Enter для запуска
Лимит
07:00
Консоль
Нажмите кнопку запуска или Ctrl+Enter
Модель последнего устройства пользователя — SQL задача — ML Mentor