|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
Здравствуйте! Из таблицы tmp_br2336_device для каждого msisdn нужно найти крайние (по дате) os_type и terminal_type. Написал следующий запрос. Но некоторым msisdn сопоставляются по несколько пар os_type и terminal_type. Код: plsql 1. 2. 3. 4. 5. 6.
Подскажите, пожалуйста, что делаю неправильно? Заранее благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:16 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:20 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
ssCandal, Попробуйте так. Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:21 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:23 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
SergiiW Попробуйте так. Просто интересно - на какой эффект Вы рассчитываете, предлагая данное "так"? SY Код: plsql 1.
По ходу я опять чего-то не знаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:23 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
andrey_anonymous, order by dv.msisdn_last_updt - не детерминирован (разве только поле msisdn_last_updt уникально). SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:31 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
andrey_anonymous Просто интересно - на какой эффект Вы рассчитываете, предлагая данное "так"? SY Код: plsql 1.
По ходу я опять чего-то не знаю... Упс - cut & paste. Конечно partition by лишний: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:34 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
SY andrey_anonymous, order by dv.msisdn_last_updt - не детерминирован (разве только поле msisdn_last_updt уникально). Полагаю, в рамках задачи в пределах группы его можно принять уникальным. Но доп. сортировка по rowid, конечно, делает решение более общим. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:36 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
Работает не так, как нужно мне SergiiW ssCandal, Попробуйте так. Код: sql 1. 2. 3. 4. 5.
Запрос Код: plsql 1.
выдал Код: plsql 1. 2. 3.
А хотелось бы получить Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 18:36 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
msisdn_last_updt уникальны для каждого конкретного msisdn. По крайне мере, я так думаю... andrey_anonymous SY andrey_anonymous, order by dv.msisdn_last_updt - не детерминирован (разве только поле msisdn_last_updt уникально). Полагаю, в рамках задачи в пределах группы его можно принять уникальным. Но доп. сортировка по rowid, конечно, делает решение более общим. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 18:52 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
ssCandal Работает не так, как нужно мне Вам уже два человека показали как сделать правильно. Но в работу Вы взяли изначально неверный вариант. Продолжайте в том же духе. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 19:05 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
Другие предложенные варианты я тоже испробовал. Просто ищу вариант без group by. andrey_anonymous ssCandal Работает не так, как нужно мне Вам уже два человека показали как сделать правильно. Но в работу Вы взяли изначально неверный вариант. Продолжайте в том же духе. А так, оказалось, что пара (dv.msisdn, dv.msisdn_last_updt) не уникальна, хотя я рассчитывал на это. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 19:14 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
SergiiW ssCandal, Попробуйте так. Если хочешь аналитику: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
или Код: plsql 1. 2. 3. 4. 5. 6. 7.
Кстати, аналитика дает преимущество так как позволяет вывести любое количество строк с любым рангом (например первые по имени 3 сотрудника из каждого отдела с 5-ой по величине зарплатой. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 19:18 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
SY, Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 19:26 |
|
не получается уникально, distinct, partition by
|
|||
---|---|---|---|
#18+
ssCandal Другие предложенные варианты я тоже испробовал. Просто ищу вариант без group by. ... А так, оказалось, что пара (dv.msisdn, dv.msisdn_last_updt) не уникальна, хотя я рассчитывал на это. Вариант без group by - зачем, если под задачу лучше подходит именно он? По уникальности - тогда вариация от SY, добавьте в order by вторым компонентом rowid, это предотвратит возможный косяк, когда ostype возьмется от одной записи, а тип терминала - от другой. SY Если хочешь аналитику: Код: plsql 1.
В означенных условиях мне больше по душе вариация от Elic Код: plsql 1.
которая метит крайнюю в порядке сортировки запись, а не нумерует всю выборку. ...только лучше Код: plsql 1.
а то наступал не так давно на баг, связанный с desc-сортировкой ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 19:28 |
|
|
start [/forum/topic.php?fid=52&msg=40114930&tid=1879732]: |
0ms |
get settings: |
4ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
32ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
257ms |
get tp. blocked users: |
2ms |
others: | 298ms |
total: | 606ms |
0 / 0 |