Тож недавно перед собеседованием | |
---|---|
alex; Сообщений: 3392 Откуда: Москва Дата регистрации: 23.11.2004 |
|
Re: Тож недавно перед собеседованием | |
---|---|
sphinx Сообщений: 31891 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
1) Где висят эти задачи? 2) Так взяли или нет? Или надо было все без ошибок решить? ------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Тож недавно перед собеседованием | |
---|---|
alex; Сообщений: 3392 Откуда: Москва Дата регистрации: 23.11.2004 |
в курилке местной видел и на sql.ru, но я сам хотел порешать нет, попросили поправить + на c# вот тока отправил ![]() |
Re: Тож недавно перед собеседованием | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
В 4 задаче - если будет дубликат дня (в условии не оговорено что даты уникальны) то на этот день будет ошибка.
Кроме того такой запрос весьма неоптимален - по крайней мере для оракла ![]()
Тоже не фонтан по производительности, хотя и быстрее раза в 2 и не даёт указанной ошибки. Ну и с аналитикой вот так будет:
В 10 задаче, ты считаешь не процент попаданий по ВСЕЙ таблице, а лишь процент в рамках каждого id - если id уникальны, то для любой записи получишь 100% В оракле есть весёлая аналитическая функция RATIO_TO_REPORT как раз позволяющая считать подобные проценты (как по всей таблице, так и по указанному partition-у, т.е. разделу, группе записей) с её использованием запрос можно написать вот так (пустой over - значит считаем процент ко ВСЕМ записям):
Без этой функции таки придётся делать почти как у тебя - и лучше с CTE, чтобы 2 раза не писать одинаковый подзапрос.
В принципе можно переписать такой запрос и без CTE/подзапросов - использовать как в 4 примере аналитическую функцию, но с заданием окна ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING (т.е. по сути сказать "считай для всей таблицы") - что даёт в итоге вычисление "за 1 проход". Правда писанина получается корявая - наш самодельный occurs придётся повторять 3 раза ![]()
По 9-му вопросу увы, не Копенгаген ![]() ------------------ WBR, Igor ![]() |
Re: Тож недавно перед собеседованием | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
По C#
1) .ToString() не нужен для единственного аргумента Console.WriteLine(arg1) - там куча перегрузок под базовые типы, плюс он сам для object вызовет ToString(). Это если не подойдёт ни одна из "простых" перегрузок и будет выбран вариант Console.WriteLine(object arg1) 2) Console.WriteLine("A=" + A.ToString() + ", B=" + B.ToString()); Коряво, лучше Console.WriteLine("A={0}, B={1}", A, B); можно и нужный формат отображения задать тут же. 3) a -= 1; это a--; при том можно даже "совместить" эти декременты во 2 примере написав A[a--] и B[b--] в коде вывода, ну и соответственно в начале int sum1 = a-- + b--; ![]() 4) хардкодинг i < 5 в условии цикла 6-го примера (надо тот же A.Length пользовать) Ну и некоторые имена локальных переменных, скажем так, коротки и не мнемоничны ![]() P.S. Заодно посмотрел как называется функция из 8 примера - это "суперфакториал" ![]() ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 19.07.16 15:17 ![]() |
Re: Тож недавно перед собеседованием | |
---|---|
alex; Сообщений: 3392 Откуда: Москва Дата регистрации: 23.11.2004 |
Игорь, спасибо - все четко расписал
а если для 10 задачи так
Исправлено 1 раз(а). Последнее : alex;, 19.07.16 15:41 ![]() |
Re: Тож недавно перед собеседованием | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну так это практически то же самое что и я писал в предпоследнем примере-запросе - просто с выделением суммирующего подзапроса в CTE
![]() ------------------ WBR, Igor ![]() |
Re: Тож недавно перед собеседованием | |
---|---|
Гулин Федор Автор Сообщений: 4659 Откуда: Минск Дата регистрации: 24.10.2002 |
мс-скл мой осн. тул щас
exec sp_MSdependencies 'Stg.INF_Transaction', null, 0x140010 stackoverflow.com однако недокум. фича похоже однако не знал - полез бы в инфо таблицы с метаданными - там есть начсет остальных задач - за компом с гоглм все порешал бы а вот на бумаге - не факт полезная гимнатсика для ума - правда на собесдовании где стресс бывает даже что знаешь не ответишь. ![]() |
© 2000-2025 Fox Club  |