извлечение самых последних записей для каждой группы в Oracle SQL
Этот учебник демонстрирует общую задачу базы данных: получение самой последней записи для каждой группы на основе временной метки. В качестве примера мы используем таблицу, содержащую идентификаторы, временные метки и величины.
]Испытание:
данный таблицу с столбцами ID, TimeStamp ("Date") и количества ("Количество"), как мы эффективно выбираем последнее количество (и связанная с этим временной метки) для каждого уникального идентификатора?
]Решение:
это может быть достигнуто с помощью следующего подхода:
]select x.id, x. "Date", x.quantity ОТ ( ВЫБИРАТЬ идентификатор, "дата", Rank () Over (раздел по идентификационному порядку по «дате» desc) как rnk, количество От Qtys ) x Где x.rnk = 1;
SELECT x.id, x."date", x.quantity
FROM (
SELECT
id,
"date",
RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk,
quantity
FROM qtys
) x
WHERE x.rnk = 1;
расширение запроса: ] этот базовый запрос может быть адаптирован для удовлетворения более сложных потребностей:
]]
]
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3