|
|
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Увидел в PostgreSQL такую удобную штуку: Код: sql 1. 2. 3. 4. А есть ли такое в Oracle? У меня есть несколько многоэтажных запросов, они бы существенно сократились. Да и выглядит на мой взгляд удобнее. На диаграммах я такой возможности не вижу, но может быть не там ищу. ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2017, 14:19 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2017, 15:09 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Alibek B., думаю что, нет да и не так часто мне ето нужно или я не понял фичу мне было-бы удобно 1) group by 1,3 2) із май скуеля select x a,a*x a2, a2*x a3 ... ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2017, 15:37 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
SY , я про другую "многоэтажность". Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2017, 11:31 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Alibek B. SY , я про другую "многоэтажность". Код: sql 1. 2. 3. 4. 5. 6. 7. Открой для себя макроподстановки (&) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2017, 12:33 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
stax..мне было-бы удобно 1) group by 1,3Этого не будет, потому что не может быть никогда. order by выполняется в последнюю очередь, когда уже все посчитано. После group by выполняется аналитика и прочее. Абсолютно некорректно было бы использовать номера столбцов в group by, если сами значения будут посчитаны после применения оного. Пример Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. То есть, в третьем случае, если трактовать 1 не как выражение, а как номер столбца, то ты ожидаешь, что изменился бы порядок выполнения запроса, и аналитика выполнилась перед группировкой, что привело бы к результату Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2017, 09:59 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopstax..мне было-бы удобно 1) group by 1,3Этого не будет, потому что не может быть никогда. order by выполняется в последнюю очередь, когда уже все посчитано. После group by выполняется аналитика и прочее. Абсолютно некорректно было бы использовать номера столбцов в group by, если сами значения будут посчитаны после применения оного. Пример Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. То есть, в третьем случае, если трактовать 1 не как выражение, а как номер столбца, то ты ожидаешь, что изменился бы порядок выполнения запроса, и аналитика выполнилась перед группировкой, что привело бы к результату Код: plaintext ? то что не будет то я верю, а вот что невозможно нет в Вашем последним случае должен дать ошибку ORA-30483: window functions are not allowed here Код: plsql 1. 2. 3. 4. 5. 6. 7. аналитику нельзя в group by при любой "нотации" какой результат, ет другой вопрос ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 15:36 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
stax.., Аналитика - это лишь пример. Там может быть скаляр или прочее. Суть в том, что сортировка последняя, до нее все вычислено и можно использовать номера столбцов. Гриппировка - далеко не последняя операция и выполнении запроса отсюда хотелка нерациональна. Это не рассматривая более сложные комбинации. Например. Пытаемся натянуть модель с неуникальной адресацией в измирении - закономерно получаем ошибку Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Добавляем уникальность в используемых правилах, а не по всему измерению - ОК Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Предварительно группируем и убираем "unique single reference" - тоже работает ОК (результат закономерно "схлопнутый") Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Теперь пытаемся группировать по обоим атрибутам выборки Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Про X на этапе группировки вообще ничего не изветсно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 16:35 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, причем сдесь модель, нельзя при любой нотации указывать "столбец" из measures, ошибку выдало не из-за указания порядкового номера/алиаса (1,2 ...) как бы выглядел пример, если БЫ ... Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 16:46 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
stax..dbms_photoshop, причем сдесь модель, нельзя при любой нотации указывать "столбец" из measures, ошибку выдало не из-за указания порядкового номера/алиаса (1,2 ...) как бы выглядел пример, если БЫ ... Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...... staxЯ на конкретных примерах пытаюсь донести мысль, что вот это stax..мне было-бы удобно 1) group by 1,3 абсурд. В том и дело, что многие колонки вычисляются после группировки, поэтому хотеть использовать нумерацию в группировке несколько странно. Ты общаешься в духе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 16:57 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю, речь совсем о другом. Дело не в том, что group by вычисляется не в самим конце — никто на значения столбцов и не ссылается. Удобно вместо повтора выражения в двух местах (в select и в group by) указывать выражение только в одном месте (в select), а в group by указывать просто номер столбца из select, из которого нужно использовать выражение. Особенно это удобно для многоэтажных выражений, которые в этом случае можно было бы указывать только один раз: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Не то, чтобы без этого нельзя было бы прожить, но это удобство, которое несложно было бы реализовать (парсер при выявлении номера столбца просто бы подставлял вместо номера выражение из select). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:12 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Alibek B., Ты ничего не понял как и Станислав. Ок, ждите. stax..мне было-бы удобно 1) group by 1,3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:18 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopstax..dbms_photoshop, причем сдесь модель, нельзя при любой нотации указывать "столбец" из measures, ошибку выдало не из-за указания порядкового номера/алиаса (1,2 ...) как бы выглядел пример, если БЫ ... Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...... staxЯ на конкретных примерах пытаюсь донести мысль, что вот это stax..мне было-бы удобно 1) group by 1,3 абсурд. В том и дело, что многие колонки вычисляются после группировки, поэтому хотеть использовать нумерацию в группировке несколько странно. не надо бездумно колонки впихивать в group by, из модель/аналитики оракля их по любому не пропускает, хотя аналитику мог и пропустить что ораклю не понятно в примере Код: plsql 1. 2. 3. 4. 5. 6. 7. Вы меня не переубедили ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:18 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Alibek B.никто на значения столбцов и не ссылается И что тогда должно означать? Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:24 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
stax..Вы меня не переубедили Да я уже и не пытаюсь. Тебя же совершенно не смущает, что, если в запросе 10 колонок, то может случиться так, что в группировке ты сможешь указывать только, скажем 2,5,7 потому что остальные считаются после группировки. А в скортировке ты можешь указывать всегда любую комбинацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:25 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Alibek B.Насколько я понимаю, речь совсем о другом. Дело не в том, что group by вычисляется не в самим конце — никто на значения столбцов и не ссылается. Удобно вместо повтора выражения в двух местах (в select и в group by) указывать выражение только в одном месте (в select), а в group by указывать просто номер столбца из select, из которого нужно использовать выражение. Особенно это удобно для многоэтажных выражений, которые в этом случае можно было бы указывать только один раз: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Не то, чтобы без этого нельзя было бы прожить, но это удобство, которое несложно было бы реализовать (парсер при выявлении номера столбца просто бы подставлял вместо номера выражение из select). не обязательно номер, удобно и алиас я номер привел, чтоб более понятно было о чем я ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:28 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Лично меня, тут больше вероятность ошибки пугает. Удалили/добавили поле в select list и все. Нумерация уехала, фиг ошибку найдешь и обратно реконструируешь, какая же идея была в запрос исходным автором вложена. С учетом, что в системах под Oracle бывают НУ ОЧЕНЬ большие и многовложенные запросы - контроль синтаксиса и ошибок станет просто смертельный. Copy / past выражений тоже раздражает. Но указание колонок по номеру, приведет к полному падению supportability кода. IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:30 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
-2-Alibek B.никто на значения столбцов и не ссылается И что тогда должно означать? Код: plsql 1. должен дать ошибку ERROR at line 1: ORA-00934: group function is not allowed here ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:32 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopstax..Вы меня не переубедили Да я уже и не пытаюсь. Тебя же совершенно не смущает, что, если в запросе 10 колонок, то может случиться так, что в группировке ты сможешь указывать только, скажем 2,5,7 потому что остальные считаются после группировки. А в скортировке ты можешь указывать всегда любую комбинацию. почему меня должно смущать, я ж не бездумно указываю 2,5,7 меня ж не смущает что в ордер бай іногда проходіт только "позиционная/алиасная нотация" ps мне более інтересно в чем я неправ с коннект бай .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:49 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЛично меня, тут больше вероятность ошибки пугает. Удалили/добавили поле в select list и все. Нумерация уехала, фиг ошибку найдешь и обратно реконструируешь, какая же идея была в запрос исходным автором вложена. С учетом, что в системах под Oracle бывают НУ ОЧЕНЬ большие и многовложенные запросы - контроль синтаксиса и ошибок станет просто смертельный. Copy / past выражений тоже раздражает. Но указание колонок по номеру, приведет к полному падению supportability кода. IMHO & AFAIKну ладно, хрен с вами, лично мне тоже групп бай по номерам результирующих колонок нафиг не впал давайте групп бай по алиасам тех колонок, уже можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:57 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЛично меня, тут больше вероятность ошибки пугает. Удалили/добавили поле в select list и все. Нумерация уехала, фиг ошибку найдешь и обратно реконструируешь, какая же идея была в запрос исходным автором вложена. С учетом, что в системах под Oracle бывают НУ ОЧЕНЬ большие и многовложенные запросы - контроль синтаксиса и ошибок станет просто смертельный. Copy / past выражений тоже раздражает. Но указание колонок по номеру, приведет к полному падению supportability кода. IMHO & AFAIK а в ордер бай не смущает? причем древних версиях иногда только позиционная я понимаю что последствия несколько меньшие я ж уточнял, в идеале не 1,4, а алиасы, если удалили ошибка юююю stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:58 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
andreymxдавайте групп бай по алиасам тех колонок, уже можно? авторЭтого не будет, потому что не может быть никогда. +1 ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 18:01 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
stax..а в ордер бай не смущает? причем древних версиях иногда только позиционная я понимаю что последствия несколько меньшие staxбыло несколько раз, когда в результате неверной сортировки показывалась совершенно иная картина когда приложение строит, например, какой-то аналог дерева ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 18:02 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
andreymxstax..а в ордер бай не смущает? причем древних версиях иногда только позиционная я понимаю что последствия несколько меньшие staxбыло несколько раз, когда в результате неверной сортировки показывалась совершенно иная картина когда приложение строит, например, какой-то аналог дерева да я верю топ N на основе ордер бай тоже важными бывают ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 18:06 |
|
||
|
Именованное окно для аналитических функция
|
|||
|---|---|---|---|
|
#18+
stax..andreymxдавайте групп бай по алиасам тех колонок, уже можно? авторЭтого не будет, потому что не может быть никогда. +1 ..... staxТы мои ответы не приписывай к иным формулировкам, ок? Про connect by речь шла вообще в другой теме и я довольно внятно указал, что искать в доке. Если интересуют детали - я описывал в The Power of Oracle SQL . Но я один раз тебе давал ссылку, так что полагаю, что у тебя нет желания читать. А у меня нет желания копипастить одно и то же и расжевывать по 100 раз. На этом предлагаю и разойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 18:13 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39420226&tid=1884964]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 569ms |

| 0 / 0 |
