Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги! Предлагаю вам на рассмотрение задачу, решение которой на соответствующем уровне позволяет оценить уровень ПОНИМАНИЯ sql. Задача: Есть таблица dwh (id int, pos varchar(50), vl int). Значения в поле id уникальны, но не последовательны(например -20,-15,5 ...). В поле name наименования позиций (уникальные). В поле vl количество единиц по соответствующей позиции. Для любого vl справедливо, что vl <= квадрата количества записей в таблице dwh. Пример данных: Код: plaintext 1. 2. 3. 4. 5. 6. Напишите скрипт, возвращающий select, в котором каждой позиции соответствует количество строк, равное значению поля vl. Поля результата: np - номер позиции в списке наименований позиций, отсортированных по алфавиту (1,2,3...) nr - последовательня нумерация строк внутри одной позиции pos - наименование позиции. Пример результата: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. !!! Решите задачу в рамках ограничений нужного уровня (см. ниже) Уровни: 1: задача решена более чем 3 запросами sql 2: задача решена 3 запросами sql 3: задача решена 1 запросом sql вложенными запросами/подзапросами 4: задача решена 1 запросом sql без вложенных запросов/подзапросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2008, 13:27 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Вот мое решение: SELECT ROW_NUMBER () OVER (ORDER BY t2.pos) np, ROW_NUMBER () OVER (PARTITION BY t2.pos ORDER BY t2.pos) nr, t2.pos, t2.vl FROM (SELECT DISTINCT LEVEL, t.* FROM dwh t CONNECT BY LEVEL <= t.vl) t2; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2008, 16:24 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Дяденька а скажито пожалуйста, А ответы укладываются в стандарт SQL92?, или можно жульничать на PL/SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 13:16 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Приношу извинения за задержку с ответами. Последнее время не получается посещать этот форум так часто, как хочется. Да, в формулировке задачи присутствует неявность. Предлагаю следущие уточнения: 1 и 2 варианты - "жульничаем" 3 и 4 варианты - используем возможности исключительно SQL-92 P.S. SemenovALДяденька а скажито пожалуйста, А Пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 17:55 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
P.P.S. " жульничаем " - PL/SQ L или TSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 18:10 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
млн. посетительВот мое решение: SELECT ROW_NUMBER () OVER (ORDER BY t2.pos) np, ROW_NUMBER () OVER (PARTITION BY t2.pos ORDER BY t2.pos) nr, t2.pos, t2.vl FROM (SELECT DISTINCT LEVEL, t.* FROM dwh t CONNECT BY LEVEL <= t.vl) t2; немного не то что просили Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Народ гляжу не очень заинтересовался топиком, а вот мне как новечку было бы очень любопытно взглянуть на Ваши решения товариши гуроны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2008, 13:06 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
учитывая результат млн. посетитель Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2008, 18:27 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
sql_msЗначения в поле id уникальны, но не последовательны(например -20,-15,5 ...).разве это нужно явно упоминать? по-моему это и так подразумеватся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 14:52 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Без использования иерархии и row_number Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 15:49 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
sql_ms4: задача решена 1 запросом sql без вложенных запросов/подзапросовMS 2005 Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 21:45 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
raul_83 Код: plaintext C#C++ sql_ms4: задача решена 1 запросом sql без вложенных запросов/подзапросовMS 2005 Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2008, 18:01 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
sql_ms - решение 2 уровня , так как SQL-92 не предусматривает наличие таких таблицы и функцийПонятно. Тогда можно смело утверждать, что 4 уровень недостижим. На SQL-92 далеко не уедешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2008, 00:55 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
C#C++ sql_ms - решение 2 уровня , так как SQL-92 не предусматривает наличие таких таблицы и функцийПонятно. Тогда можно смело утверждать, что 4 уровень недостижим. На SQL-92 далеко не уедешь... 4 уровень - решение есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2008, 09:19 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 02:39 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
извращенец Код: plaintext 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. Почти всё хорошо, но ты попал на магию данных :) Попробуй свой запрос на таком наборе данных: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 05:53 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 10:10 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
извращенец Код: plaintext 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. Уже совсем хорошо, но можно сделать с пятью обращениями к таблице, а не с шестью, как это сделано сейчас. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 11:34 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
извращенец Код: plaintext 1. 2. Добрый Э - Эх извращенец+ Код: plaintext 1. 2. Уже совсем хорошо, но можно сделать с пятью обращениями к таблице, а не с шестью, как это сделано сейчас. :) - приведите, пожалуйста, ваше решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 11:46 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Ну и бонус -условие решения задачи для 5 уровня. 5 уровень: Решить эту задачу для неуникальных сочетаний (id, pos, vl) или аргументировано доказать, что это невозможно p.s. Уровень 4+: Решить задачу для неуникальных pos , не объединяя одинаковые pos в одну и не используя сложение строк. p.p.s Надеюсь, Вам было интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 12:09 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
sql_ms приведите, пожалуйста, ваше решение. Ну, назвать такого уродца решением - язык не поворачивается... Но если сильно интересно, то вот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. И результат его работы: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 13:00 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
sql_msНу и бонус -условие решения задачи для 5 уровня. 5 уровень: Решить эту задачу для неуникальных сочетаний (id, pos, vl) или аргументировано доказать, что это невозможно p.s. Уровень 4+: Решить задачу для неуникальных pos , не объединяя одинаковые pos в одну и не используя сложение строк. p.p.s Надеюсь, Вам было интересно. Про 4+ - не совсем понял задания... :( ID при этом остается уникальным? Что значит - не объединяя одинаковые pos и не используя сложения строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 13:03 |
|
||
|
Оценка уровня ПОНИМАНИЯ sql
|
|||
|---|---|---|---|
|
#18+
Если все правильно понял, то 4+ это примерно такое: Код: plaintext 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. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 13:26 |
|
||
|
|

start [/forum/topic.php?fid=34&fpage=29&tid=1550765]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 369ms |

| 0 / 0 |
