|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Возможно ли написать более оптимально запрос : SELECT DOCUMENTNO, CASE WHEN T1.DAID = 111111 THEN 'DB' WHEN T1.CAID = 111111 THEN 'CR' END DBCRD, SITEID, CASE WHEN T1.DAID = 111111 THEN T1.AANO WHEN T1.CAID = 111111 AND T1.ID = T2.ID_BI2 THEN T2.KACC WHEN T1.CAID = 111111 THEN T1.ABNO END SAMEACC, CASE WHEN T1.DAID = 111111 THEN T1.BAID WHEN T1.CAID = 111111 AND T1.ID = T2.ID_BI2 THEN T2.KMFO WHEN T1.CAID = 111111 THEN T1.BBID END SAMEMFO, CASE WHEN T1.DAID = 111111 THEN T1.CABNAME WHEN T1.CAID = 111111 AND TABLE1.ID = T2.ID_BI2 THEN T2.NAME_PAYEE WHEN T1.CAID = 111111 THEN T1.CABNAME END SAMENAME, (SELECT t.SNAME FROM SOMECODE t WHERE T.ID = CASE WHEN DAID = 111111 THEN AID WHEN CAID = 111111 THEN BID END ) VALUEB, CID, SUMMAEQ, PLATPURPOSE FROM TABLE1 T1 FULL OUTER JOIN TABLE2 T2 ON T1.ID = T2.ID_BI2 WHERE T1.DAID = 111111 OR T1.CAID = 111111 AND T1.SOMEDATE BETWEEN '2018-11-01' AND '2018-11-30' ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 12:39 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
w31, full -> left ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 12:47 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
w31, критерий оптимальности? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 12:47 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
w31более оптимально запросЕсли поубирать переводы строк и незначащие пробелы, то длина запроса оптимизируется даже не смотря на то, что нужно два раза добавить date. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 12:49 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 13:50 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Dshedoo Код: plsql 1. 2. 3. 4. 5. 6.
Неверно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:09 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
andrey_anonymousDshedoo Код: plsql 1. 2. 3. 4. 5. 6.
Неверно. Если я правильно понял, то в оригинале очепятка в виде отсутствующих скобок: Код: plsql 1. 2.
Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:17 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Dshedooв оригинале очепятка В оригинале - тестовое задание, которое позволяет интервьюеру оценить компетенцию кандидата. Если бы интервьюером был я, то Ваш ответ для начала сказал бы мне, что Вы не сумели написать эквивалентный запрос :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:21 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
-2-full -> left Как минимум, зависит от Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:22 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
andrey_anonymousDshedooв оригинале очепятка В оригинале - тестовое задание, которое позволяет интервьюеру оценить компетенцию кандидата. Если бы интервьюером был я, то Ваш ответ для начала сказал бы мне, что Вы не сумели написать эквивалентный запрос :) С таким подходом можно и по поводу алиасов придираться, например: Код: plsql 1. 2.
Вдруг тут имелся ввиду не T1.DAID, а T.DIAD или T2.DAID. Нигде же не сказано, что запрос возвращает данные, а не ORA-01427 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:36 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
andrey_anonymous-2-full -> left Как минимум, зависит от Код: plsql 1. 2. 3.
а в чем зависимость? ps если T1.SOMEDATE тип date, я б дописал date '2018-11-01' AND date '2018-11-30' .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:43 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Staxа в чем зависимость? А они в какой таблице? -2- предложил уйти от full outer, который мог быть написан не "шоббуло". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:45 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
andrey_anonymousStaxа в чем зависимость? А они в какой таблице? -2- предложил уйти от full outer, который мог быть написан не "шоббуло". Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:54 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Dshedoo Код: plsql 1. 2. 3.
Вы правы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:56 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
andrey_anonymousStaxа в чем зависимость? А они в какой таблице? -2- предложил уйти от full outer, который мог быть написан не "шоббуло". я в смысле как влияет на замену full outer? ps я б добавил всюду алиасы, но на оптимальность ето повлияет мизерно ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 14:58 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Staxя в смысле как влияет на замену full outer? С учетом where - уже никак, я "перебдел" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:07 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3.
Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:11 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
andrey_anonymousStaxя в смысле как влияет на замену full outer? С учетом where - уже никак, я "перебдел" :)Правда замена влияет только на визуальную оптимальность. Оптимизатор и сам разберется кто outer, а кто нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:23 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Dshedoo Код: plsql 1.
Код: plsql 1.
Опять неверно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:28 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Dshedoo Код: plsql 1.
CASE WHEN T1.DAID = 111111 THEN T1.AANO WHEN T1.CAID = 111111 AND T1.ID = T2.ID_BI2 THEN T2.KACC WHEN T1.CAID = 111111 THEN T1.ABNO END SAMEACC, и тд .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:32 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
Staxи тд Да. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:35 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
w31, WHEN T1.CAID = 111111 THEN заменить на ELSE ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:37 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
andrey_anonymousStaxи тд Да. ... мой вариант корректировки case представлен для T2.KMFO not null, не надо инсинуаций :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:38 |
|
Вопрос на интервью
|
|||
---|---|---|---|
#18+
StaxDshedoo Код: plsql 1.
CASE WHEN T1.DAID = 111111 THEN T1.AANO WHEN T1.CAID = 111111 AND T1.ID = T2.ID_BI2 THEN T2.KACC WHEN T1.CAID = 111111 THEN T1.ABNO END SAMEACC, и тд .... stax Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
NVL я заменил на NVL2, т.к. если T2.KACC is null, чтобы вернулся null. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 15:38 |
|
|
start [/forum/topic.php?fid=52&fpage=85&tid=1882824]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 372ms |
total: | 515ms |
0 / 0 |