|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Всем привет самостоятельно разбираюсь с темой, но вот пока не могу ответить на вопрос практического применения этих функций. Пока сложилось впечатление, что примеры мягко говоря притянуты за уши. То есть скорее для демонстрации , а не для задач в жизни. Кто сталкивался с оправданным применением? Как выглядят реальные задачи в которых эффективно применение сабж? Кто заказчик, в интересах которого используются? Особенно для аналитических функций (PERCENT_RANK, CUME_DIST, PERCENTILE_CONTи PERCENTILE_DISC); Может прикопан ресурс , где на примере станет понятен профит ? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 09:22 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Покажите хорошие варианты, которые бы делали то, что делают, к примеру, rank или dense_rank, но без них. И чтобы коротко и лаконично :) Или, к примеру, first_value/last_value внутри окна и с сортировкой ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 11:27 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr Может прикопан ресурс , где на примере станет понятен профит ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 11:36 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr Всем привет самостоятельно разбираюсь с темой, но вот пока не могу ответить на вопрос практического применения этих функций. Пока сложилось впечатление, что примеры мягко говоря притянуты за уши. То есть скорее для демонстрации , а не для задач в жизни. Кто сталкивался с оправданным применением? Как выглядят реальные задачи в которых эффективно применение сабж? Кто заказчик, в интересах которого используются? Особенно для аналитических функций (PERCENT_RANK, CUME_DIST, PERCENTILE_CONTи PERCENTILE_DISC); Может прикопан ресурс , где на примере станет понятен профит ? Спасибо. В ряде случаев позволяет избежать нескольких обращений к одной и той же таблице, ускоряя выполнение запросов и делая код более читаемым. Да, не все функции одинаково широко применимы, как приведенные вами, но есть ситуации, когда и они нужны, например, при решении о премировании . Попробуйте решить эти задачи без аналитических функций и сравните получившийся код. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 11:58 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Asmodeus IgorShr Всем привет самостоятельно разбираюсь с темой, но вот пока не могу ответить на вопрос практического применения этих функций. Пока сложилось впечатление, что примеры мягко говоря притянуты за уши. То есть скорее для демонстрации , а не для задач в жизни. Кто сталкивался с оправданным применением? Как выглядят реальные задачи в которых эффективно применение сабж? Кто заказчик, в интересах которого используются? Особенно для аналитических функций (PERCENT_RANK, CUME_DIST, PERCENTILE_CONTи PERCENTILE_DISC); Может прикопан ресурс , где на примере станет понятен профит ? Спасибо. В ряде случаев позволяет избежать нескольких обращений к одной и той же таблице, ускоряя выполнение запросов и делая код более читаемым. Да, не все функции одинаково широко применимы, как приведенные вами, но есть ситуации, когда и они нужны, например, при решении о премировании . Попробуйте решить эти задачи без аналитических функций и сравните получившийся код. Спасибо Я не отрицаю удобства и оптимальности функций Но пробую найти кто же заказчик похожей аналитики в повседневной жизни PS двум предыдущим авторам и ответить то нечего, тем более поблагодарить Спросил одно, ответили на другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 12:22 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr Спасибо Я не отрицаю удобства и оптимальности функций Но пробую найти кто же заказчик похожей аналитики в повседневной жизни ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 12:32 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr двум предыдущим авторам и ответить то нечего, тем более поблагодарить Спросил одно, ответили на другое. Дело все в том, что пока вы не понимаете, как странно звучит ваш вопрос: IgorShr Кто сталкивался с оправданным применением? Но со временем, как осознаете, окажется, что предыдущие два автора сказали не бесполезные вещи. И есть еще одна очевидная вещь - учиться дома на примерчиках крайне сложно, так как вы и придумать задачку реальную не можете. Не потому что проблема в вас, а потому, что пока не имеете практики. Так создайте себе практику. Вот вам задачка - возьмите план счетов, загрузите его в таблицу и попробуйте пронумеровать эти счета внутри одной главы, одной группы счетов (4 знака). А после перепишите все это подзапросами. Сравните результат, осознайте. Задачка тупая, но хоть как-то приближена к реальности P.S. При прочтении задачки выше может возникнуть вопрос - почему мне этот предыдущий автор пишет про какую-то непонятную бухг.кухню, я вообще-то SQL учу. Это будет еще одним открытием, возможно. Но позже ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 12:39 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Master_Detail IgorShr двум предыдущим авторам и ответить то нечего, тем более поблагодарить Спросил одно, ответили на другое. Дело все в том, что пока вы не понимаете, как странно звучит ваш вопрос: IgorShr Кто сталкивался с оправданным применением? Но со временем, как осознаете, окажется, что предыдущие два автора сказали не бесполезные вещи. И есть еще одна очевидная вещь - учиться дома на примерчиках крайне сложно, так как вы и придумать задачку реальную не можете. Не потому что проблема в вас, а потому, что пока не имеете практики. Так создайте себе практику. Вот вам задачка - возьмите план счетов, загрузите его в таблицу и попробуйте пронумеровать эти счета внутри одной главы, одной группы счетов (4 знака). А после перепишите все это подзапросами. Сравните результат, осознайте. Задачка тупая, но хоть как-то приближена к реальности P.S. При прочтении задачки выше может возникнуть вопрос - почему мне этот предыдущий автор пишет про какую-то непонятную бухг.кухню, я вообще-то SQL учу. Это будет еще одним открытием, возможно. Но позже ну так вот вопрос то ключевой так и звучал Как сформулированы реальные задачи , которые бы эффективно решались с помощью функций? а то что на абстрактных примерах учиться это не более чем просто понять механизм работы, это и так озвучил. Из предложенной задачи понятно все, кроме ответа на вопрос : кому то в реальной жизни такой отчет действительно нужен? Ну и еще , уже более расширенный вопрос. из более продвинутых примеров упоминается например "Моделирование атрибуции" Кто в реальной жизни с таким столкнулся? Моего уровня знаний в этой теме недостаточно, поэтому напрашивается вариант : или поднимать знания на уровень классической аналитики или надеяться что перед разработчиком еще есть две ступени: бизнес и системный аналитик, которые из задачи бизнеса сформулируют ТЗ для разработчика, где будут уже более приземленные термины, нежели "Моделирование атрибуции ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 12:55 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr Спросил одно, ответили на другое. Никанор Кузьмич открыл вопрос, глянул по диагонали, закрыл, "да ну фигня" и пошел дальше ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 13:22 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr Как сформулированы реальные задачи , которые бы эффективно решались с помощью функций? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 13:25 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr ну так вот вопрос то ключевой так и звучал Как сформулированы реальные задачи , которые бы эффективно решались с помощью функций? Жила-была система. И торговали в этой системе полотово. И попросил Заказчик выводить по 50 лотов на экран за раз. Сделал это Разработчик, ибо не сложно было. Посмотрел Заказчик, и говорит: "А хорошо бы еще Клиентам показывать общее число лотов." "Чего уж проще" - подумал Разработчик. Первым запросом получаем общее число лотов, вторым - собственно лоты. Вроде все красиво: вот поле с количеством лотов, вот - табличка с лотами. Поблагодарил Заказчик за быстрое исполнение его желания. Но торговали в системе интенсивно, и начали Клиенты жаловаться: "А почему общее количество лотов - 42, а у меня на экране только 37? Вы мне не все показываете?! Это не честно!" Прибежал разгневанный Заказчик к Разработчику: "Почему?!" "Почему-почему..." - подумал Разработчик. "По SCN'у!" Но Заказчик этого не узнал, потому что Разработчик был очень воспитанный. И взял Разработчик аналитический count, и стало вместо двух запросов - один, а число в поле с общим количеством лотов стало совпадать с числом строк в таблице (если их меньше размера страницы, конечно же). И успокоились Клиенты, извинившись за свои подозрения, и улыбка вернулась на лицо Заказчика, и спокойствие воцарилось в его душе. Тут и сказочке конец. Счастливый. На некоторое время. Прошу прощения за форму. IgorShr а то что на абстрактных примерах учиться это не более чем просто понять механизм работы, это и так озвучил. Из предложенной задачи понятно все, кроме ответа на вопрос : кому то в реальной жизни такой отчет действительно нужен? Ну и еще , уже более расширенный вопрос. из более продвинутых примеров упоминается например "Моделирование атрибуции" Кто в реальной жизни с таким столкнулся? Моего уровня знаний в этой теме недостаточно, поэтому напрашивается вариант : или поднимать знания на уровень классической аналитики или надеяться что перед разработчиком еще есть две ступени: бизнес и системный аналитик, которые из задачи бизнеса сформулируют ТЗ для разработчика, где будут уже более приземленные термины, нежели "Моделирование атрибуции ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 13:25 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr Как сформулированы реальные задачи , которые бы эффективно решались с помощью функций? А может Вам это и не надо ? Решайте задачи циклами. Ведь никто не против. А вот когда увидите, что циклами или другими вашими методами получается долго, на множестве записей. То придете сюда и поставите правильно свою задачу с примерами. И тогда тут могут помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 13:31 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Владимир СА IgorShr Как сформулированы реальные задачи , которые бы эффективно решались с помощью функций? А может Вам это и не надо ? Решайте задачи циклами. Ведь никто не против. А вот когда увидите, что циклами или другими вашими методами получается долго, на множестве записей. То придете сюда и поставите правильно свою задачу с примерами. И тогда тут могут помочь. Дельное предложение. "Оконные функции" - это не только не панацея от всех бед, но и возможный источник новых неожиданных проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 13:56 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Никанор Кузьмич IgorShr Как сформулированы реальные задачи , которые бы эффективно решались с помощью функций? А чем плох вопрос ? На фоне современного мира, когда можно использовать электронное способы формирования и хранения информации? Вот тут , уважающий себя читатель , ответит приблизительно так: есть области, которые не приняли деюро электронный документооборт, и вот в этих случаях необходимо использовать бумагу и ручку. Вот если внимательно вчитаться в вопрос, то там нет скрытого " на хрена эти функции, когда можно сделать циклами" Там если расширить то так: расскажите плиз про задачи от экономистов( маркетологов, продажников etc ), решив которые элегантно с помощью оконных и аналитических функций , вы вызываете у них неописуемый восторг , который в практическом эквиваленте позволяет: экономисту сократить свой ручной труд в столько то раз, маркетологу понять какую рекламную модель использовать и тд ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 14:10 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr, а нарастающий итог ч-з коррелированный подзапрос щетать будишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 14:32 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
mnbvcx IgorShr, а нарастающий итог ч-з коррелированный подзапрос щетать будишь? ну нет конечно же! Я очень обрадовался когда прочитал про возможность нарастающего итога И очень опечалился когда не смог найти ему практическое применение, кроме как "вот хочу этот итог видеть и все тут!" Ну то есть, если мне такую задачу поставят , я ее решу как раз с помощью функционала окон. Но при этом из любопытства и для собственного развития задам вопрос заказчику "Чувак, а расскажи, практическую пользу от того , что у тебя появится поле нарастающего итога" И тут, как и на этом форуме, возможны разные варианты ответов Например, "Дуд! Как! Ты не знаешь зачем используется нарастающий итог в зарплатной ведомости? Ну ты дуб и дерево. А еще разработчик" Ну или вдруг, что весьма нехарактерно для этого форума, за редким исключением, спокойное объяснение того, как этот нарастающий итог позволяет принять ему взвешенное управленческое или операционное решение ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 14:40 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr как этот нарастающий итог позволяет принять ему взвешенное управленческое или операционное решение ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 14:49 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Asmodeus IgorShr как этот нарастающий итог позволяет принять ему взвешенное управленческое или операционное решение Йоу! Точно! Прям луч света ! Спасиб, бро! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 14:56 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr Прям луч света ! Вы просто отработайте все основные аналитические функции, освойте окна, где не только partition by. Запомните +- как оно работает и, поверьте, будет задачка на реальной работе, когда придет прозрение - о, я ведь когда-то это читал/пробовал. Но помните, что есть путь и проще... Никанор Кузьмич "да ну фигня" и пошел дальше ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 17:49 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Master_Detail, Ага. я бы чё еще хотел сказать как минимум у одного человека в этой ветке, есть уникальная способность он реально сможет доступным и понятным языком описать что можно сделать с помощью ручки и бумаги. Причем сделать это так, что и инопланетянину будет понятно. Не корявым " ну ты сможешь че нить написать или нарисовать" и не используя при этом способ : ты это...начнешь что нибудь с помощью ручки и бумаги делать потихоньку, озарение само придет Спасибо, что еще есть такие люди. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 18:00 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
IgorShr mnbvcx IgorShr, а нарастающий итог ч-з коррелированный подзапрос щетать будишь? ну нет конечно же! Я очень обрадовался когда прочитал про возможность нарастающего итога И очень опечалился когда не смог найти ему практическое применение, кроме как "вот хочу этот итог видеть и все тут!" Ну то есть, если мне такую задачу поставят , я ее решу как раз с помощью функционала окон. Но при этом из любопытства и для собственного развития задам вопрос заказчику "Чувак, а расскажи, практическую пользу от того , что у тебя появится поле нарастающего итога" И тут, как и на этом форуме, возможны разные варианты ответов Например, "Дуд! Как! Ты не знаешь зачем используется нарастающий итог в зарплатной ведомости? Ну ты дуб и дерево. А еще разработчик" Ну или вдруг, что весьма нехарактерно для этого форума, за редким исключением, спокойное объяснение того, как этот нарастающий итог позволяет принять ему взвешенное управленческое или операционное решение Это тупо нужно щетать, и пох как - в sql 2008 дешевой версии я нарастающий итог ч-з подзапрос считал. Нопремер, ращет средневзвешенной цены актива по ФИФО. ЦБ вменяет именно по ФИФО считать. Сейчас, видимо, это не очень актуально, но раньше инвест-компании, которые являются налоговым агентом, это делали. ЗЫ Оно, теоретически, и сейчас актуально, но по-факту с брокерских щетов хер ты чего от российских брокеров выведешь. ЗЗЫ Можно и на щётах считать, чё бы и нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 19:14 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
mnbvcx IgorShr пропущено... ну нет конечно же! Я очень обрадовался когда прочитал про возможность нарастающего итога И очень опечалился когда не смог найти ему практическое применение, кроме как "вот хочу этот итог видеть и все тут!" Ну то есть, если мне такую задачу поставят , я ее решу как раз с помощью функционала окон. Но при этом из любопытства и для собственного развития задам вопрос заказчику "Чувак, а расскажи, практическую пользу от того , что у тебя появится поле нарастающего итога" И тут, как и на этом форуме, возможны разные варианты ответов Например, "Дуд! Как! Ты не знаешь зачем используется нарастающий итог в зарплатной ведомости? Ну ты дуб и дерево. А еще разработчик" Ну или вдруг, что весьма нехарактерно для этого форума, за редким исключением, спокойное объяснение того, как этот нарастающий итог позволяет принять ему взвешенное управленческое или операционное решение Это тупо нужно щетать, и пох как - в sql 2008 дешевой версии я нарастающий итог ч-з подзапрос считал. Нопремер, ращет средневзвешенной цены актива по ФИФО. ЦБ вменяет именно по ФИФО считать. Сейчас, видимо, это не очень актуально, но раньше инвест-компании, которые являются налоговым агентом, это делали. ЗЫ Оно, теоретически, и сейчас актуально, но по-факту с брокерских щетов хер ты чего от российских брокеров выведешь. ЗЗЫ Можно и на щётах считать, чё бы и нет. ЗЗЗЫ ЛИД ЛАГ могут понадобиться, нопремер, для ращета максимальной просрочки за период. Так-то комрад всё правильно ответил Никанор Кузьмич IgorShr Может прикопан ресурс , где на примере станет понятен профит ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 19:16 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Владимир СА ... Решайте задачи циклами. Ведь никто не против. А вот когда увидите, что циклами или другими вашими методами получается долго, на множестве записей. То придете сюда и поставите правильно свою задачу с примерами. И тогда тут могут помочь. Выглядит как безумное предположение. Мне не приходилось встречать человека, освоившего "программирование циклами", которому бы после этого когда-нибудь понадобились аналитические функции. Я и сам, в существенной степени, именно такой и есть. 🧐 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 23:22 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Смотри к примеру есть лист согласования (грид) № п/п ФИО Уровень согласования Резолюция1 Иванов 1 согл2 Петров 13 Сидоров 1 согл4 Алексанрова 25 Петрушев 26 Ген директор 3 Постановка задачи: согласованные позиции выделять зелёным цветом, но если все позиции одного уровня согласованы, то выделить серым весь уровень. Код: sql 1. 2. 3. 4.
То же применимо к подсветить суммы превышающие определённую долю в группе. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 10:32 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
booby Владимир СА ... Решайте задачи циклами. Ведь никто не против. А вот когда увидите, что циклами или другими вашими методами получается долго, на множестве записей. То придете сюда и поставите правильно свою задачу с примерами. И тогда тут могут помочь. Выглядит как безумное предположение. Мне не приходилось встречать человека, освоившего "программирование циклами", которому бы после этого когда-нибудь понадобились аналитические функции. Я и сам, в существенной степени, именно такой и есть. 🧐 Просто есть много методов решения задачи... Я об этом хотел сказать... Но чувствуется топикастер не встретил задачи, в которых лучше использовать оконные функции. Он скорее хочет, чтобы ему рассказали теорию... А почитать документацию ? Попробовать, и если не получается, то тогда обратиться на форум с предоставлением данных на которых тренировался и запросы, которые использовал. Я именно так вижу работу форума. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 11:01 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Вообще, всё что связанно с долями отлично считается через аналитику. Ещё пример, расчёт налога на имущество. Имеется у вас несколько десятков тысяч объектов основных средств, причисленных каждый к своему подразделению. Вы рассчитываете, по определённым формулам, сумму налога на имущество. Но потом эту сумму надо распределить по подразделениям. В бухгалтерских документах суммы до копеек, так что придётся округлять каждую сумму по подразделению. А после этого накопившуюся разницу от округлений закинуть в подразделение с самой большой суммой или распределить среди топ 5 подразделений. Так вот аналитикой это делается одним запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 11:11 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
istrebitel Вообще, всё что связанно с долями отлично считается через аналитику. Ещё пример, расчёт налога на имущество. Имеется у вас несколько десятков тысяч объектов основных средств, причисленных каждый к своему подразделению. Вы рассчитываете, по определённым формулам, сумму налога на имущество. Но потом эту сумму надо распределить по подразделениям. В бухгалтерских документах суммы до копеек, так что придётся округлять каждую сумму по подразделению. А после этого накопившуюся разницу от округлений закинуть в подразделение с самой большой суммой или распределить среди топ 5 подразделений. Так вот аналитикой это делается одним запросом. И получаю конечный результат в той форме, какой нужен пользователю. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 11:14 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
lead / lag Есть у тебя заявка и история статусов по ней. Дата время Статус03.03.2022 11:15:00 Новая03.03.2022 11:16:00 Принят03.03.2022 11:18:00 В работе03.03.2022 11:19:00 Выполнен03.03.2022 11:24:00 Закрыт А надо получить Дата время Статус Продолжительность03.03.2022 11:15:00 Новая 00:01:0003.03.2022 11:16:00 Принят 00:02:0003.03.2022 11:18:00 В работе 00:01:0003.03.2022 11:19:00 Выполнен 00:05:0003.03.2022 11:24:00 Закрыт ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 11:19 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Владимир СА, Ну в моём случае конечный результат был Код: sql 1. 2.
То есть надо сформировать документ в системе. Реальная жизнь ещё сложнее, налог считается от остаточной стоимости ОС, кто знаком с бух учётом знает, остальным поясню. Остаточная стоимость это первоначальная стоимость - амортизация. Они хранятся на разных счетах бухучёта. А если это здоровенное здание там могут быть несколько подразделений, часть здания может сдаваться в аренду. В течении года у объекта ОС могла быть модернизация меняющая его первоначальную стоимость. Представьте любой здоровенный завод, вот вам надо посчитать всё от шуруповёрта до здания, в разрезе каждого месяца за год. С учётом кучи условий движимое/недвижимое, введено в эксплуатацию до такой то даты или после. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 11:41 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
istrebitel Владимир СА, Ну в моём случае конечный результат был Код: sql 1. 2.
То есть надо сформировать документ в системе. Реальная жизнь ещё сложнее, налог считается от остаточной стоимости ОС, кто знаком с бух учётом знает, остальным поясню. Остаточная стоимость это первоначальная стоимость - амортизация. Они хранятся на разных счетах бухучёта. А если это здоровенное здание там могут быть несколько подразделений, часть здания может сдаваться в аренду. В течении года у объекта ОС могла быть модернизация меняющая его первоначальную стоимость. Представьте любой здоровенный завод, вот вам надо посчитать всё от шуруповёрта до здания, в разрезе каждого месяца за год. С учётом кучи условий движимое/недвижимое, введено в эксплуатацию до такой то даты или после. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 12:11 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
istrebitel Владимир СА, Ну в моём случае конечный результат был Код: sql 1. 2.
То есть надо сформировать документ в системе. Реальная жизнь ещё сложнее, налог считается от остаточной стоимости ОС, кто знаком с бух учётом знает, остальным поясню. Остаточная стоимость это первоначальная стоимость - амортизация. Они хранятся на разных счетах бухучёта. А если это здоровенное здание там могут быть несколько подразделений, часть здания может сдаваться в аренду. В течении года у объекта ОС могла быть модернизация меняющая его первоначальную стоимость. Представьте любой здоровенный завод, вот вам надо посчитать всё от шуруповёрта до здания, в разрезе каждого месяца за год. С учётом кучи условий движимое/недвижимое, введено в эксплуатацию до такой то даты или после. Но если просто записать в таблицу: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
К чему я... Т.е. если в WITH куча алиасов, то все равно можно сделать запись в таблицу... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 12:32 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Владимир СА, Оператор WITH не спасёт тебя от двойного, тройного, пятерного прохождения по одним и тем же данным, а данных много. Да MATERIALIZE чуть облегчит задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 13:10 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
istrebitel Владимир СА, Оператор WITH не спасёт тебя от двойного, тройного, пятерного прохождения по одним и тем же данным, а данных много. Да MATERIALIZE чуть облегчит задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 13:18 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Вот где используется нарастающий итог Дата время Статус Продолжительность Общее время03.03.2022 11:15:00 Новая 00:01:0003.03.2022 11:16:00 Принят 00:02:00 00:01:0003.03.2022 11:18:00 В работе 00:01:00 00:03:0003.03.2022 11:19:00 Выполнен 00:05:00 00:04:0003.03.2022 11:24:00 Закрыт 00:09:00 От подачи заявки до выполнения прошло 4 минуты. Сравнительно легко добавлять логику исключения времени нахождения в статусе Приостановлен. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 13:28 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Вот пока у меня складывается впечатление что тема в первую очередь для разовых запросов или блажи или привычки заказчиков, не? То есть они больше для визуализации. Для движков , которые работают на логику есть смысл их использовать? ну вот взять те же лимиты которые накапливающимся итогом. В знакомых мне по работе платежных системах лимиты считаются без использования аналитических или оконных функций, да и пороговые и прочие комиссии тоже . А вот какому нибудь плановику тому подай нарастающий итог в разных проекциях. istrebitel Вот где используется нарастающий итог Дата время Статус Продолжительность Общее время03.03.2022 11:15:00 Новая 00:01:0003.03.2022 11:16:00 Принят 00:02:00 00:01:0003.03.2022 11:18:00 В работе 00:01:00 00:03:0003.03.2022 11:19:00 Выполнен 00:05:00 00:04:0003.03.2022 11:24:00 Закрыт 00:09:00 От подачи заявки до выполнения прошло 4 минуты. Сравнительно легко добавлять логику исключения времени нахождения в статусе Приостановлен. Вот как раз и напрашивается вопрос, допустим это какой нибудь сервис менеджер, который отслеживает SLA . В нем эта логика будет зашита и будет выбрасываться алерт, смысл в отчете, который запускается ежесекундно и отслеживает показатель нулевой. Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2022, 15:39 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
ну и стандартный пример, который используется в 90% случаев. Большой селект, обращающийся к разным таблицам. В таблицах есть дубли по определенным полям. Нужно, чтоб их не было. например, джойн по полю id и могут быть несколько строк с одинаковым id, что однозначно породит дубли в итоговом запросе. чтоб убрать дубли, заказчик требует выбрать только те строки, у которых максимальный date_begin (ну или какое другое поле поле - максимально-минимально) попробуйте решить такую задачку без оконных функций. С помощью оконной функции row_number() over (partition by id order by date_begin desc) задача решается с полпинка. Интересно ваше решение без оконных функций. оконные функции - инструмент. Заказчиков оконных функций нет. Есть проблема, которую надо решить. и вот тут инструмент вполне так может понадобится. В примере выше - вы видите требование заказчика. Там ни слова про оконные функции. Это ваш талант и умения должны вам подсказать, что их использование тут как нельзя кстати. ... |
|||
:
Изменено: 31.10.2023, 12:10 - bhr
Нравится:
Не нравится:
|
|||
31.10.2023, 12:08 |
|
Оконные и аналитические функции. Практическое применение
|
|||
---|---|---|---|
#18+
Простой пример. есть набор сумм договоров с плюсами и минусами. Например по клиенту что-то типа договор 1 +1000 дата 01.01.2023 договор 2 -500 дата 03.01.2023 договор 3 -200 дата 01.05.2023 И общий список скажем в сумм 1000 по десятку разных клиентов. И во всем этим клиентом надо сделать свертку этих сумм например по дате начиная с минимальной отбрасывая лишние суммы по одной из сторон и оставляя остаток на погранично сумме(т.е. в примере выше от тысячи останется 300 рублей). Аналитикой ве это можно сделать в одном запросе получив на выходе готовый список где будет что-то типа клиент 1 всего позиций 3 эта позиция 1 договор 1 сумма +1000 закрываем 700 клиент 1 всего позиций 3 эта позиция 2 договор 1 сумма -500 закрываем -500 клиент 1 всего позиций 3 эта позиция 3 договор 1 сумма -200 закрываем -200 По мне так проще потом читать и поддерживать зарос влезающий на одну страничку чем пихать все это например по коллекциям да потом по ним бегать пока не надоест или кучу раз читать одни и те же данные подбирая суммы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2023, 11:50 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1879471]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 428ms |
0 / 0 |