|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Здравствуйте, проходил тестовые задания одной из фирм. В результате получил следующий ответ "К сожалению тест не прошел, видимо пока не достаточно опыта", стало интересно в каком конкретно месте я затупил. Очень прошу оценить решение ребят которые хорошо знают t-sql. Для себя на будущее и для развития Если кто поможет, прошу к своему мнению добавить устроил бы их как руководителя такой ответ (то есть прошел тестовые задания или нет) Задачи и их решение приложил файлами ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 10:43 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 10:43 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 10:44 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Sandist, автор1. Высчитать сумму всех цифр серии и номера паспорта (На входе получаем текст, состоящий из серии и номера паспорта, разделенных пробелом, например, «1234 567890». На выходе должно получиться число меньше десяти. Пример: 1+2+3+4+5+6+7+8+9+0 = 45 = 4+5 = 9 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Твой cross apply не выполняет выделенное условие. Сумма 10-ти цифр, может дать число, сумма цифр которого будет больше 10. Например - 9999 988888 => 85 => 13 = > 4 (т.е. тут 3-и суммирования нужно сделать) Вот гражданин с таким номером, просто не поучаствует в розыгрыше ... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 12:22 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court, Решения в файлах ваши или работодателя? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 12:26 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
автор1. Высчитать сумму всех цифр серии и номера паспорта (На входе получаем текст, состоящий из серии и номера паспорта, разделенных пробелом, например, «1234 567890». На выходе должно получиться число меньше десяти. Пример: 1+2+3+4+5+6+7+8+9+0 = 45 = 4+5 = 9 Да тут просто порезать на два числа, сложить их, и поделить на 9. Остаток (если он ноль - заменить на 9) и есть ответ. Это даже не на знание SQL, это школьная математика. А здесь как в анекдоте "а вы такое написали! да ещё и нарисовали!". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 12:36 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
авторНаписать скрипт на выборку сумм по продажам товаров со следующими условиями: • Выводить суммы продаж за указанный пользователем период (любой) • В строки выводить наименование товаров, сумму продаж за указанную дату, при этом т.к. период выборки может меняться, количество колонок в итоговом отчете заранее неизвестно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
тут - "да", без динамики не обойтись, но, имхо, 100500 коррелированных подзапросов, это как-то "жестоко" ... Динамический pivot или 'sum(case when recdate=' + @dt + ' then quantity end) as ... ' смотрелись бы получше + твой запрос будет выводить всегда все товары, вне зависимости от того, были ли продажи в этот период. Из постановки, этот момент не совсем ясен (совсем не ясен), нужно ли всегда выводить весь справочник, но логичнее всё-таки выводить только то, по чем были продажи ... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 12:41 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court, спасибо огромное за комментарии 1. по сумме Код: sql 1. 2. 3. 4.
Это посчитает сумму 85 Код: sql 1.
это условие 8+5 < 10 Насколько я понял из условия задачи таких как раз нужно исключать. Я неверно понял задание? 2. 'sum(case when recdate=' + @dt + ' then quantity end) as ... ' смотрелись бы получше ты прав, не додумался + твой запрос будет выводить всегда все товары, вне зависимости от того, были ли продажи в этот период. Из постановки, этот момент не совсем ясен (совсем не ясен), нужно ли всегда выводить весь справочник, но логичнее всё-таки выводить только то, по чем были продажи ... так и планировал, думал если отчет, то должен показать статистику по всем товарам, чтобы было видно какой товар вообще не участвовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 12:50 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Sandist Насколько я понял из условия задачи таких как раз нужно исключать. Я неверно понял задание? Иначе было бы сказано явно, про то, что их нужно исключить (+ это известный "алгоритм" у всяких "нумерологических гаданий" :)) когда сложение цифр идет до получения итоговой цифры, т.е. < 10) пс нуу и Akina , видимо, "зрит в корень" :) - задача была на знание этого алгебр."свойства" Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 13:02 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Sandist, 3-я интересная только я её, в случае ID=6 и 7, понял не так как ты имхо, конечно, думаю что тут имеется в виду, что мы не знаем какое из продублированных "Отбытие" (6) и "Прибытие" (7) правильное Поэтому берём среднее от обоих вариантов Код: sql 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.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
IDAVG_On_Way_Min16762153218043720514406216072160 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 14:12 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court, еще раз спасибо огромное! в 3 задаче не было пунктов 4,5,6,7 - это я додумал, что в принципе такое может быть и как по мне это ошибка, не может транспорт 2 раза подряд отбыть, соответственно по сути не важно какое решение по таким случая, главное чтобы не ошибочное (в плане реализации ты подумал о них) насчет select (99999+88888) % 9 объясните мне пожалуйста суть, я что-то никак не могу уловить что требовалось "Высчитать сумму всех цифр серии и номера паспорта (На входе получаем текст, состоящий из серии и номера паспорта, разделенных пробелом, например, «1234 567890». На выходе должно получиться число меньше десяти. Пример: 1+2+3+4+5+6+7+8+9+0 = 45 = 4+5 = 9" Я понял, что не нужно было фильтровать по этому значению, а просто вывести цифру как отдельное поля для того чтобы показать что ты знаешь какой-то алгоритм "со школьной математики" )) но не могу понять для чего и в чем задача? сделать так, чтобы суммируя 10 чисел ты по итогу получил цифру? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 14:23 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Sandist сделать так, чтобы суммируя 10 чисел ты по итогу получил цифру? да, именно так суммировать пока не получится цифра (0-9) А через формулу, которую написал Akina это делается просто и быстро Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 14:41 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court, то есть результат должен был быть таким? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
все равно ведь считать сумму цифр, от нее и получить цифру менее 10 по алгоритму Akina, верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 15:53 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Sandist court, то есть результат должен был быть таким? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
все равно ведь считать сумму цифр, от нее и получить цифру менее 10 по алгоритму Akina, верно? проще Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 16:06 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Sandist все равно ведь считать сумму цифр можно не разбивать на слагаемые / не считать сумму если получающееся число "влазит" в целочисленный тип вот 10 символов (цифр) в bigint "влазит" было бы больше - нужно было бы "разделить" на несколько слагаемых ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 16:09 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court, спасибо, теперь у меня сложилась картина, для чего мы считали эту цифру, получается по ней и смотрим четное или нет насчет второго задания, реализовал через pivot, ранее не делал через pivot стало интересно, посмотри плз Код: sql 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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 16:40 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Sandist насчет второго задания ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 16:58 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court, огромнейшее спасибо ))) первое собеседование провалил за несколько лет, было очень интересно что не так сделал ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 17:03 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
Sandist, Не расстраивайтесь. Работодатель, который предлагает задачи предполагающие SUBSTRINGSUBSTRINGSUBSTRINGSUBSTRINGSUBSTRING в решении или иное извращенное применение sql в качестве парсеров и разбирателей куч пахнущей субстанции вместо данных, не стоит внимания. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 20:43 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court Sandist, 3-я интересная только я её, в случае ID=6 и 7, понял не так как ты имхо, конечно, думаю что тут имеется в виду, что мы не знаем какое из продублированных "Отбытие" (6) и "Прибытие" (7) правильное Поэтому берём среднее от обоих вариантов Код: sql 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.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
IDtAVG_On_Way_Min1t6762t153t21804t37205t14406t21607t2160 Ужос. Прежде чем громоздить горы говнокода, надо азы математики вспомнить. Для корректной постановки (отбытий и прибытий одинаково и они чередуются): СреднееВремя = Сумма(Прибытие-Отбытие) / Число_отбытий СреднееВремя = ( Сумма(Прибытие) - Сумма(Отбытие) ) / Число_отбытий т.е. переводим даты в минуты (или секунды) относительно ЛЮБОЙ даты и фперде. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 15:00 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
aleks222 Для корректной постановки (отбытий и прибытий одинаково и они чередуются): это всё "городилось" под это предположение court только я её, в случае ID=6 и 7, понял не так как ты имхо, конечно, думаю что тут имеется в виду, что мы не знаем какое из продублированных "Отбытие" (6) и "Прибытие" (7) правильное Поэтому берём среднее от обоих вариантов ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 15:05 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court aleks222 Для корректной постановки (отбытий и прибытий одинаково и они чередуются): это всё "городилось" под это предположение court только я её, в случае ID=6 и 7, понял не так как ты имхо, конечно, думаю что тут имеется в виду, что мы не знаем какое из продублированных "Отбытие" (6) и "Прибытие" (7) правильное Поэтому берём среднее от обоих вариантов А для некорректной - требуются доп. указания. В постановке задачи их нет => все некорректные следует НЕ считать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 15:10 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
aleks222 court пропущено... нуу, а для "некорректной" ? это всё "городилось" под это предположение пропущено... А для некорректной - требуются доп. указания. В постановке задачи их нет => все некорректные следует НЕ считать. а какое из 2-х "Отбытие" (6) и "Прибытие" (7) корректное, а какое некорректное ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 11:19 |
|
Помогите пожалуйста оценить решение тестового задания
|
|||
---|---|---|---|
#18+
court aleks222 пропущено... А для некорректной - требуются доп. указания. В постановке задачи их нет => все некорректные следует НЕ считать. а какое из 2-х "Отбытие" (6) и "Прибытие" (7) корректное, а какое некорректное ? Бессмысленные рассуждения в контексте тестовой задачи. В реальности это вне компетенции программиста. Начальство должно решить "чаво делать с некорректными данными?". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 11:32 |
|
|
start [/forum/topic.php?fid=46&msg=39997219&tid=1685660]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 276ms |
total: | 422ms |
0 / 0 |