|
Решение тестового задания
|
|||
---|---|---|---|
#18+
Недавно соискателя (MS SQL) перед собеседованием попросили написать, как бы он удалил дубли из таблицы формата Код: sql 1.
Его ответ был следующим: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Я очень уважаю творческий подход к решению задач. Но работать рядом с таким коллегой мне было бы страшно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 11:54 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений, я не помню, кто-то, то ли Гладченко, то ли Олонцев, что-ли, (если не они, то чур не обижаться) как то сказал что-то типа: "Если человек знает синтаксис курсора без MSDN - его к работе с SQLSERVER подпускать нельзя" :-))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 12:15 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений, курсор еще ладно, но я так пониаю если запись дублируется, то в итоге ни одной строчки не останется по ней ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 12:53 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
одна останется cast(@C-1 as varchar) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 13:03 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений, в 2к это вроде был единственный вариант. если решение задачи имеет правильный результат, то это уже хорошо. вы же не попросили озвучить все возможные варианты. и может быть коллега наоборот продемонстрировал широту кругозора, показав столь древний вариант :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 13:07 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
uaggster, spenov, Меня испугал не курсор, а количество примененных методов и их суммарная эффективность вместо одного из типовых, проверенных подходов. Чтобы этот скрипт работал гарантированно, его надо, в частности, обернуть в транзакцию. А это, соответственно сказанному выше, испугало бы меня еще сильнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 13:20 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений, а почему в таком случае вас не пугает таблица без ключа? :) решение по сути корректное. в определенных условиях единственное. а так можно вспомнить про обработку ошибок и еще кучу всего. я на практике таблиц без ключа не встречал. а вопрос этот для собеседования один из самых частых. наверное традиция :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 13:25 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
spenov .Евгений, в 2к это вроде был единственный вариант. если решение задачи имеет правильный результат, то это уже хорошо. вы же не попросили озвучить все возможные варианты. и может быть коллега наоборот продемонстрировал широту кругозора, показав столь древний вариант :) Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 13:40 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
aleks222, так вы ТС вообще в кому загоните :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 13:45 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений, delete top (n) автор, очевидно, не знал. Нагородил динамический запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:01 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
spenov, aleks222 привел стандартное решение, наиболее простое и уместное в большинстве случаев. Он не изобретал велосипеда с треугольными колесами. Таблицы без ключа (кучи) легальны и в некоторых ситуациях вполне обычны. Например, стейджинг (когда загружаете данные из другой системы или файла, которые требуется проверить и очистить). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:04 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений, это решение простое, стандартное и уместное? однако... а чего бы тогда не добавить ключ, удалить строки, а потом грохнуть ключ? а если на таблице триггеры, которые еще что-то меняют? как страшно жить :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:10 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
spenov, Триггеров нет, потому что об этом не сказано в задании. Добавление уникального ключа - тоже приемлемый вариант. Несмотря на то, что данный способ потребует нескольких сортировок таблицы и прав на ее изменение, он тоже имеет право на существование. В конце концов, если так нравится курсор, то можно им читать и им же удалять (при совпадении строки с предыдущей). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:19 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений, я о том, что в задании вообще нет ничего. почему решение, которое достигает верный результат, вы так яростно критикуете? каким образом кандидат может угадать, какое решение будет по вашему мнению красивым? исходная постановка не корректна. я бы на вашем месте поинтересовался у кандидата, а знает ли он еще какие-нибудь варианты. и в каком контексте предпочтительнее использовать каждый из них. может быть кандидат вроде алекса222 и таким образом проверил вашу адекватность :) и точно также рассказывает сейчас, что был на собеседовании. там задали тупой вопрос не имеющий к практике никакого отношения. я выдал шокирующее решение, а собеседник выпал в осадок... по факту здесь только ваши эмоции. может вы обидели уважаемого человека :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:29 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
spenov .Евгений, почему решение, которое достигает верный результат, вы так яростно критикуете? Я - яростно критикую ? Напротив, я отметил творческий подход. А решение характеризуется не одним только результатом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:38 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:45 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений, вы высказали негативную оценку претендента на работу. по крайней мере я так это понял. я дерзнул высказать свое мнение, что для негативной оценки не достаточно информации. вам наверное не нравится, когда чужое мнение не совпадает с вашим. для руководителя это не лучший вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:47 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений spenov, aleks222 привел стандартное решение, наиболее простое и уместное в большинстве случаев. Он не изобретал велосипеда с треугольными колесами. Таблицы без ключа (кучи) легальны и в некоторых ситуациях вполне обычны. Например, стейджинг (когда загружаете данные из другой системы или файла, которые требуется проверить и очистить). Для больших таблиц с малым количеством повторов - это плохое решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:51 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
iap Код: sql 1. 2.
борьба была за нети ROW_NUMBER() в MS SQL 2000. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:54 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
aleks222 iap Код: sql 1. 2.
борьба была за нети ROW_NUMBER() в MS SQL 2000. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 15:55 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
iap, ну это вроде "а одной рукой смогёшь"? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 16:27 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
Владислав Колосов iap, ну это вроде "а одной рукой смогёшь"? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 17:24 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
.Евгений Недавно соискателя (MS SQL) перед собеседованием попросили написать, как бы он удалил дубли из таблицы формата Код: sql 1.
Его ответ был следующим: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Я очень уважаю творческий подход к решению задач. Но работать рядом с таким коллегой мне было бы страшно. красиво сделал! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 17:50 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
iap Код: sql 1. 2.
Тоже нашёл такое решение. Только я не понимаю, почему оно работает. CTE что ли хранит ссылку на исходную таблицу? Что-то про это ничего в документации не сказано. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 18:00 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
DanilaSP iap Код: sql 1. 2.
Тоже нашёл такое решение. Только я не понимаю, почему оно работает. CTE что ли хранит ссылку на исходную таблицу? Что-то про это ничего в документации не сказано. CTE похоже на VIEW в этом плане. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 18:30 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
DanilaSP, что тут сложного, удалить строки, для которых вычисленное значение n > 1. Вычисляем, удаляем. Можете то же самое сделать через временную таблицу, для изучения содержимого. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 22:03 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
Ну если это делать через временную таблицу, то всё понятно. Здесь же интересна особенность сохранения ссылок на строки исходной таблицы. Про view посмотрел. Теперь понятно, что модификация возможна не для всех случаев, а для определённого подкласса выражений. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 23:36 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
DanilaSP, каких ссылок? CTE - это обертка над запросом, не думайте, что сначала выполняется CTE в скобках, а потом код ниже. Перефразированный запрос, не более того. Посмотрите план запроса, будет более понятна последовательность действий. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 12:00 |
|
Решение тестового задания
|
|||
---|---|---|---|
#18+
Владислав Колосов DanilaSP, каких ссылок? CTE - это обертка над запросом, не думайте, что сначала выполняется CTE в скобках, а потом код ниже. Перефразированный запрос, не более того. Посмотрите план запроса, будет более понятна последовательность действий. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 12:14 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1684157]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
177ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
94ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 331ms |
0 / 0 |