|
|
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Меня не нужно ругать и закидывать ссаными тряпками. Я уже на протяжении долгого времени ломаю голову и так и не смог прийти к правильному ответу. У меня было тестовое задание, на результат которого я уже никак не повлияю, но мне инетересно. Задача простая: Есть стандартная таблица Employees (Employee_ID, Department_ID, Salary). Нужно вывести сотрудников с максимальной в своем отделе зарплатой, избежав подзапросов . Таким образом, вариант Код: plsql 1. 2. 3. 4. отпадает, а других у меня и нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 19:58 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 20:14 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
ma1tus, Не. Немного ошибся) - аналитический dense_rank. Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 20:29 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
ora601, и точно ведь..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 21:01 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
ora601, Аналитика не удовлетворяет условиям. ТСу надо группировка + dense rank. Еще задача решается для любителей экзотики через pattern matching. Или для любителей извращений через model. Без подзапросов (или inline view как у тебя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 21:14 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopora601, Аналитика не удовлетворяет условиям. ТСу надо группировка + dense rank. Еще задача решается для любителей экзотики через pattern matching. Или для любителей извращений через model. Без подзапросов (или inline view как у тебя). У тебя слишком академическое восприятие) Без инлайн вью это возможно наверное только на model наверное. Обычно без подзапроса в таких задачах имеется ввиду без Код: plsql 1. Ну и keep dense rank выведет только одного из лидеров, что вообщем-то не верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 22:13 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
invisiblesereja, какая версія оракля? через модельку я б сделал так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 22:30 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
ora601dbms_photoshopora601, Аналитика не удовлетворяет условиям. ТСу надо группировка + dense rank. Еще задача решается для любителей экзотики через pattern matching. Или для любителей извращений через model. Без подзапросов (или inline view как у тебя). У тебя слишком академическое восприятие) Без инлайн вью это возможно наверное только на model наверное. Обычно без подзапроса в таких задачах имеется ввиду без Код: plsql 1. Ну и keep dense rank выведет только одного из лидеров, что вообщем-то не верно. нет, не так, у Вас тоже подзапрос (инлине вю) я так понимаю, автор привел пример с подзапросом ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 22:35 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
ma1tusora601, и точно ведь..) А точно ли точно? Не смущaет что aggregate KEEP DENSE_RANK и анaлитический DENSE_RANK не эквивалентны. Посему TC неплoхo бы определиться что делaть если в oтделе несколько сотрудников с максимальной в своем отделе зарплатой. Ну и match_recognize: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:19 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
ora601У тебя слишком академическое восприятиеОтнюдь. Я заядлый практик-эникейщик. ora601Без инлайн вью это возможно наверное только на model наверное.Как я уже сказал решается через model/pattern matching. Один из вариантов модели уже написал наш коллега из Львова. Через pattern matching Код: 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. ora601Обычно без подзапроса в таких задачах имеется ввиду ... Ну и keep dense rank выведет только одного из лидеров, что вообщем-то не верно.Обычно предполагается, что уникальный один или испытуемый задаст вопрос про уникальность. Если их таки не один, то keep не проканает, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:21 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
invisiblesereja, fetch first ... with ties ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:23 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
Ну а еcли нужно только одного (например с бoльшим стажем): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:25 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
А банальный having = max уже не катит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:33 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
invisibleserejaНужно вывести сотрудников с максимальной в своем отделе зарплатой, избежав подзапросов .Все условия соблюдены. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:36 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
кросс-банальностьА банальный having = max уже не катит?Ну покажи мастерство группировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:38 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopкросс-банальностьА банальный having = max уже не катит?Ну покажи мастерство группировки. Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:39 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
Б.анальный, Таки да, как-то я забыл, что есть джойны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:42 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
12цеinvisiblesereja, fetch first ... with ties А "в своем отделе" куда воткнуть? Да и за фасадом подзапросов нeмepянo: Код: 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:43 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
Насчет: Код: plsql 1. 2. 3. 4. это у меня висит DBMS_RLS policy запрещающая U1 глядеть на SAL. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 23:48 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 00:01 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
SYma1tusora601, и точно ведь..)А точно ли точно? Не смущaет что aggregate KEEP DENSE_RANK и анaлитический DENSE_RANK не эквивалентны. SY.Ну, решение в отсутствиe group by, мне приглянулось больше, чем предположенное мною) Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 07:46 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
ma1tusпредположенное мноюСорри, group by-то зачем взгромоздил... Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 08:46 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
Б.анальныйdbms_photoshopпропущено... Ну покажи мастерство группировки. Код: plsql 1. 2. 3. 4. 5. понравилолсь решение, к сожеленью, не со Львова :) ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 16:13 |
|
||
|
Вывести строки с максимальным значением параметра
|
|||
|---|---|---|---|
|
#18+
invisiblesereja, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 16:49 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=170&tid=1886241]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 385ms |

| 0 / 0 |
