|
Задача SQL
|
|||
---|---|---|---|
#18+
Всем привет помогите написать запрос , сломал голову уже( во вложении задание , не могу вывести "Кол-во проданных товаров оффлайн", "Сумма проданных товаров оффлайн","Кол-во отмененных товаров онлайн" , "Сумма отмененных товаров онлайн" Решил делать отдельно каждую таблицу ,потом совместить , но не получается вывести вышеперечисленные поля: select t1.id_delivery as "№ поставки", count(distinct t1.id_agent) as "Кол-во агентов оффлайн" , count (t1.is_agent) as "Кол-во отгруже тов оффлай" , count (t1.is_util) as "Кол-во утилиз товаров оффлайн" from tab2 t1 group by t1.id_delivery ; select count(distinct t3.id_agent) as "Кол-во агентов онлайн" , count(t3.id_type) as "Кол-во проданных тов онлайн", sum(t3.amount) as "Сумма проданных товаров онлайн" --count( t4.id_type) as "Кол-во отмен товаров онлайн" from tab3 t3 /*, tab3 t4*/ where /*t3.id_delivery=t4.id_delivery and*/ t3.id_type = 1 --and t4.id_type = 2 --(select count(tt.id_type) from tab3 tt where tt.id_type = 2 ) --group by t3.id_delivery ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 11:52 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
vasiliy89, ни кто не хочет погружаться в твои задачи, у всех свои дела. Сделай нормально постановку, вот пример, как надо https://www.sql.ru/forum/1313180/pyatnichnyy-zaprosik ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 12:06 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
Мне было не жалко 10 минут, заготовку сделал. Дальше сами поработайте. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 12:13 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
dmdmdm, да я не из вредности )) «Правильно заданный вопрос – половина ответа»(с) https://habr.com/ru/post/81046/ ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 12:32 |
|
Задача SQL
|
|||
---|---|---|---|
#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. 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.
Передайте им, что они поступают не очень этично, отзывая офферы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 13:07 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
https://www.sql.ru/forum/1288307/vakansiya-otchetnost-moskva Вот это они, как раз это задание и высылали. Вот мой вариант решения: Код: 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. 47. 48. 49. 50. 51.
автор>>Решение на проходной балл, есть ошибки в результатах. Так же мне скинули решение, которое они считают близким к идеальному. Под ошибками подразумевалось то, что я не сделал роллап по дистинкт каунту ;D ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 13:30 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
Когда пришлют ответом своё решение, скажи что в итоговой строке они выводят. Интересно, исправились они или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 13:46 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
vasiliy89, вот им. Они и мне это задание высылали. Dshedoo https://www.sql.ru/forum/1288307/vakansiya-otchetnost-moskva Вот это они, как раз это задание и высылали. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 14:01 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
slow brain, Предыдущий кандидат целый год продержался)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 14:31 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
slow brainПередайте им, что они поступают не очень этично, отзывая офферы. зато правильно Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 15:07 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морей count(distinct id_agent_offline) count_agent_offline, count(distinct decode(is_agent, 'y', id_trade_offline)) count_ship, count(distinct decode(is_util, 'y', id_trade_offline)) count_util, count(distinct case when is_agent = 'y' and IS_util is null then ID_trade_offline end) count_sell, count(distinct ID_agent_online) count_agent_online, group by rollup(id_delivery); Вот о чём я и говорил. Роллап по дистинкту даст в результате число от max до sum вышестоящих данных, что имеет практическую пользу равную нулю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 15:54 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
Dshedoo, имеет это практическую пользу, или нет, но неправильный роллап - это только первая ошибка в вашем запросе. вторая - то что вы не сделали FULL JOIN (раз уж вы вообще взялись делать джоин). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 16:13 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морейDshedoo, имеет это практическую пользу, или нет, но неправильный роллап - это только первая ошибка в вашем запросе. вторая - то что вы не сделали FULL JOIN (раз уж вы вообще взялись делать джоин). Итоговая строка - это всё таки подведение итогов вышестоящих данных, а не коня в вакууме. Фулл джоин излишен, исходя из задания. З.Ы. в "правильном" решении, там тоже не юзается фулл. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 16:32 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
DshedooИтоговая строка - это всё таки подведение итогов вышестоящих данных, а не коня в вакууме. все верно. я посчитал общее число агентов, совершивших офлайн-продажи, и общее число фактов офлайн-продаж. что именно посчитали вы? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 16:49 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
DshedooЗ.Ы. в "правильном" решении, там тоже не юзается фулл. допустим. но вы, как опытный специалист, рассуждающий о практической пользе, могли бы подумать: "хмм, мое решение предполагает, что в каждой поставке должно быть как минимум по одной онлайн и офлайн продаже, иначе эта поставка просто не попадет в отчёт... что-то тут не так" ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 16:54 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морейDshedooИтоговая строка - это всё таки подведение итогов вышестоящих данных, а не коня в вакууме. все верно. я посчитал общее число агентов, совершивших офлайн-продажи, и общее число фактов офлайн-продаж. что именно посчитали вы? А я вывел итоговую строку. Итоговая строка - это результат агрегирования вышестоящих данных. У вас есть набор данных, которые вы агрегируете, а потом делаете агрегацию агрегированных данных и получаете итоговую строку, так? Роллап агрегирует изначальные данные, присваивая полю нулл. И это прокатывает во всех случаях, за исключением агрегации distincta. кит северных морейDshedooЗ.Ы. в "правильном" решении, там тоже не юзается фулл. допустим. но вы, как опытный специалист, рассуждающий о практической пользе, могли бы подумать: "хмм, мое решение предполагает, что в каждой поставке должно быть как минимум по одной онлайн и офлайн продаже, иначе эта поставка просто не попадет в отчёт... что-то тут не так" По той же причине, почему вы не написали where id_agent in (1,2). Ведь ваше же решение предполагает выводить все данные из таблиц, а просят вернуть только 1 и 2 id_agent. Потому что это просто излишне, исходя из задания. З.Ы. хватит уже высасывать из пальца, ещё скажите что на нулл надо было проверять каждое поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:24 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
Dshedooкит северных морейя посчитал общее число агентов, совершивших офлайн-продажи, и общее число фактов офлайн-продаж. что именно посчитали вы? А я вывел итоговую строку. Итоговая строка - это результат агрегирования вышестоящих данных. Гм... "И ты прав" (с) Однако, судя по Dshedooавтор>>Решение на проходной балл, есть ошибки в результатах. Так же мне скинули решение, которое они считают близким к идеальному. Под ошибками подразумевалось то, что я не сделал роллап по дистинкт каунту ;D постановщик имел ввиду агрегацию, отличную от суммирования строк отчета. В самом деле, пусть зарегистрирована сотня агентов, но реально работает только один. Должен ли результат в итоге по полю "количество уникальных агентов" выдать "100500" как резульлтат суммирования единички из всех строк отчета? А что эта цифра будет означать в практическом плане? В конкретной постановке нарвал (не не белуха же :) выглядит заметно более правым. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:51 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
DshedooУ вас есть набор данных, которые вы агрегируете, а потом делаете агрегацию агрегированных данных и получаете итоговую строку, так? нет, не так. group by rollup(column) - это, грубо говоря, Код: plsql 1. 2. 3.
разницу между написанным выше и avg(avg(value)) надо объяснять? DshedooПотому что это просто излишне, исходя из задания. З.Ы. хватит уже высасывать из пальца, ещё скажите что на нулл надо было проверять каждое поле. да ради бога. повторяйте себе это почаще. это вы не можете тестовое задание на сотку в месяц решить, не я. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:52 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
andrey_anonymousДолжен ли результат в итоге по полю "количество уникальных агентов" выдать "100500" как резульлтат суммирования единички из всех строк отчета? Именно так, потому что мы выводим "ИТОГО" для данных, а не общее кол-во уникальных агентов. А есть у нас в будут в продажах сотни строк с кол-вом 1-5, а в "итого" выводится 94, то это правильнее? Или пару миллионов строк, с "2" в итого. Я к тому, что при таком подходе данные в итоговой строке никак не связаны с вышестоящими данными, поэтому выводить их как "ИТОГО" некорректно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 08:45 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
Dshedoo, вы итого по средним величинам как считать будете? как сумму средних? или как среднее от средних? какой у полученного результата будет практический смысл, кроме того, что он "итого для вышестоящих данных"? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 09:43 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морейDshedoo, вы итого по средним величинам как считать будете? как сумму средних? или как среднее от средних? какой у полученного результата будет практический смысл, кроме того, что он "итого для вышестоящих данных"? Точно так же, как считает avg() - соотношение суммы к кол-ву. Только если мы берём не агрегированные данные, то там 1 строка соответствует 1 кол-ву, а в агрегированных данных уже 1 строка не соответствует 1 кол-ву. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 10:00 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
Dshedooandrey_anonymousДолжен ли результат в итоге по полю "количество уникальных агентов" выдать "100500" как резульлтат суммирования единички из всех строк отчета? Именно так, потому что мы выводим "ИТОГО" для данных, а не общее кол-во уникальных агентов. Ну и напрасно. Потому что: - строка "ИГОГО" не обязана быть СУММОЙ строк отчета. Да, чаще всего именно так. Но не всегда. - любая цифра в отчете должна иметь практический смысл, заявлянный в шапке отчета. В частности, в варианте период количество активных агентов количество операций...май 10 800июнь 8 300...по году 11 1100 число 11 будет иметь реальный практический смысл в отличие от 18 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 11:19 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
Dshedoo Код: plsql 1.
Ну вот видите, и в Вашем варианте среднее по отчету - не среднее по строкам отчета, а средневзвешенное, т.е. соответствует avg(вся выборка) и не может быть проверено на основе данных отчета, если в выходной форме отсутствует "x". Таким образом Вы дезавуировали собственное утверждение. Полагаю, на этом увлекательную дискуссию можно завершать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 11:24 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
vasiliy89, Прикрепленный файл ты сам рисовал или это задание в таком виде дали? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 22:44 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
Dshedoo, Что же у них с реальными задачами творится, если они даже тестовое задание не могут изобразить по человечески ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 15:51 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
iOracleDev, нормальное тестовое задание. видите, сколько интересного позволяет узнать о кандидатах? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 16:13 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морей, Что нормального? Что нужен хрустальный шар, чтобы дополнить постановку задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 16:27 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
iOracleDevЧто нормального? Что нужен хрустальный шар, чтобы дополнить постановку задачи? Образ действий потенциального сотрудника при нечеткой постановке задачи - отдельный пункт, на который собеседующий часто обращает внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 16:45 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
iOracleDev, хрустальный шар нужен всегда и везде. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 16:57 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морейхрустальный шар нужен всегда и везде. Потер свой хрустальный шар, а он гад такой и спрашивает: почему amount в одной таблице цена (где количество?), а в другой сумма? что делать если поставки будут в оффлайн продажах но не будет в онлайн и наоборот, почему этого нет в тестовых данных? почему пустая результирующая таблица, хочешь то ты старче чего? да и вообще не мешало бы продемонстрировать пошаговый расчет ручками на тестовых данных по каждому полю строк и итога ... Осерчал я на шарик хрустальный и запустил им в тыковку автора задачки, жалко ... раскололся шарик, головушка то у автора стоеросовая. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 18:33 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
iOracleDevпочему amount в одной таблице цена (где количество?), а в другой сумма? что делать если поставки будут в оффлайн продажах но не будет в онлайн и наоборот, почему этого нет в тестовых данных? это хорошие и правильные вопросы, которые можно (и нужно) задать человеку, отправившему вам тестовое задание, продемонстрировав таким образом сильные стороны соискателя - внимание к деталям и стремление глубоко разобраться в задаче, а не просто закодировать спеку. другой вариант - прислать решение, в комментарии указав: "в ходе решения задачи возникли следующие вопросы, не оговоренные в постановке; исходя из собственного профессионального опыта принял решение, что данные элементы задачи должны быть реализованы следующим образом". с описанием логики принятия решения. так вы продемонстрируете другие сильные стороны соискателя - способность проявлять инициативу, принимать решение и нести за него ответственность, наличие профессионального опыта и умение применять его на практике. но, конечно, сказать что постановщик дурак, и не разжевал задачу, всегда проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 19:03 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морейно, конечно, сказать что постановщик дурак, и не разжевал задачу, всегда проще. Выполнять работу за постановщика задачи, почему нет, только нужно уточнить один момент, зарплату тоже вместо него получать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 19:52 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
iOracleDevкит северных морейно, конечно, сказать что постановщик дурак, и не разжевал задачу, всегда проще. Выполнять работу за постановщика задачи, почему нет, только нужно уточнить один момент, зарплату тоже вместо него получать?никогда не выполняйте чужую работу; делайте только то, что говорит начальство, и именно так, как говорит начальство, не задавая вопросов; сфокусируйтесь исключительно на собственных локальных задачах, не пытаясь увидеть всю картину. это именно те качества, которые больше всего ценятся в специалисте. тестовые задания, кстати, делать не надо - за них тоже зарплату не платят. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 20:07 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морей, Понимаю ваш сарказм, но есть другая сторона медали - "дашь палец, руку откусят". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 22:48 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
iOracleDev, это всё ерунда. вы становитесь лучше только в том, чем вы занимаетесь регулярно. пока вы регулярно решаете профессиональные задачи разных направлений, и растете как специалист, откусыватели рук растут только в умении спихивать работу друг на друга. кто из вас в будущем будет востребован на рынке труда, а кто будет зубами держаться за свое единственное рабочее место - судите сами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2019, 23:22 |
|
Задача SQL
|
|||
---|---|---|---|
#18+
кит северных морей, Интересно почему в таком случае "откусыватели рук" занимают высокие посты директоров департаментов и заместителей генеральных директоров, а вот специалисты разных направлений пашут за себя и за того парня? Больше всех в колхозе работала лошадь, но председателем так и не стала. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2019, 13:19 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1882207]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 168ms |
0 / 0 |