Думаю, на мой вопрос можно было бы ответить с помощью аналитической функции Oracle в SQL, но я не уверен. Скажем, у меня есть следующая таблица БД ДОКУМЕНТОВ:
- Ранг: обратная последовательность, каждый документ имеет свою собственную последовательность, последняя редакция документа имеет наименьший (0) номер
- Редакция: буквенно-цифровая последовательность для каждого документа, последняя редакция документа имеет наивысший идентификатор редакции
NAME | RANK | REVISION | STATE |
---|---|---|---|
DocumentA | 0 | 5b | ReadOnly |
DocumentA | 1 | 5a | Draft |
DocumentA | 3 | 3 | ReadOnly |
DocumentA | 4 | 2 | Draft |
DocumentA | 2 | 4 | Published |
DocumentA | 5 | 1 | Published |
DocumentB | 0 | 2 | Draft |
DocumentB | 1 | 1 | Published |
DocumentC | 0 | 1 | Published |
Запрошенный набор результатов: последняя опубликованная редакция для каждого документа.
Дайте мне для каждого документа последний опубликованный документ с наименьшим порядковым номером
Поскольку последняя редакция документа может находиться в состоянии черновика, это не всегда 0
NAME | RANK | REVISION | STATE |
---|---|---|---|
DocumentA | 2 | 4 | Published |
DocumentB | 1 | 1 | Published |
DocumentC | 0 | 1 | Published |
Пожалуйста, сформулируйте SQL-запрос, чтобы вернуть этот набор результатов. Большое спасибо!
Draft
всякий раз, когда они упорядочиваются по убыванию, начиная с самых ранних? - person Barbaros Özhan   schedule 27.01.2021