Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
31.10.2019, 07:26
|
|||
|---|---|---|---|
|
|||
Помогите разобраться с Over в статистических функциях |
|||
|
#18+
1) я правильно понимаю, что конструкция Код: sql 1. 2. 3. 4. равносильна следующей: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 2) BOL нифига толком ничего не пишет про order by в over (отсылает на общее описание order by, а там вообще нет ни слова про over), но если я правильно понял, вот такой запрос посчитает сумму нарастающим итогом Код: sql 1. 2. 3. 4. 5. т.е. для каждого SalesOrderID набор строк будет отранжирован по ProductID, и для каждого ProductID будет посчитан нарастающий итог по OrderQty что примерно соответствует такому запросу Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. (точнее, поскольку sum...over строки не сворачивает, к исходному набору строк надо приджойнить посчитанную сумму по SalesOrderID = SalesOrderID and ProductID = ProductID) если же мы в селект листе напишем Код: sql 1. , то условие джойна s2 и s1 будет, соответственно Код: sql 1. 2. 3. Я прав или же серьезно заблуждаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 07:52
|
|||
|---|---|---|---|
Помогите разобраться с Over в статистических функциях |
|||
|
#18+
Satans Clawsя правильно понимаю, что конструкция ... равносильна следующей Ну если не буквоедствовать по поводу разной структуры выходного набора, и при условии, что SalesOrderID не может быть NULL - да. Satans ClawsBOL нифига толком ничего не пишет про order by в over (отсылает на общее описание order by, а там вообще нет ни слова про over) https://docs.microsoft.com/ru-ru/sql/t-sql/queries/select-over-clause-transact-sql?view=sql-server-ver15 Если предложение ORDER BY не указано, то для рамки окна используется весь раздел. Это относится только к тем функциям, которым не требуется предложение ORDER BY. Если предложение ROWS или RANGE не указаны, а указано предложение ORDER BY, то в качестве значения по умолчанию для рамки окна используется RANGE UNBOUNDED PRECEDING AND CURRENT ROW. Это относится только к тем функциям, которые могут принимать дополнительную спецификацию ROWS или RANGE. Например, ранжирующая функция не может принимать предложение ROWS или RANGE, поэтому данная рамка окна не может использоваться, даже несмотря на наличие предложения ORDER BY, а предложение ROWS или RANGE отсутствует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 09:26
|
|||
|---|---|---|---|
Помогите разобраться с Over в статистических функциях |
|||
|
#18+
Satans Clawsя правильно понимаю, что конструкция равносильна следующей: Поверхностно, как результат вывода - да. Но все же оконные функции производительней, - так как имеет место быть порядок выполнения конструкций и операторов под капотом - оконные функции прозрачно применяются к уже полученному результирующему набору в памяти, в следствии чего и появляется возможность, применять в блоке SELECT разные агрегации секций построчно, независимо друг от друга. Таким образом - отпадают лишние чтения и операции обращения к таблицам, как те, что во втором случае через LEFT JOIN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 10:04
|
|||
|---|---|---|---|
Помогите разобраться с Over в статистических функциях |
|||
|
#18+
Satans Claws, 1)да 2) Код: sql 1. Это краткая запись более полной конструкции Код: sql 1. посмотрите как работает ROWS BETWEEN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 10:05
|
|||
|---|---|---|---|
Помогите разобраться с Over в статистических функциях |
|||
|
#18+
А ещё для некоторых сюрпризом является вот такая конструкция Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.10.2019, 10:29
|
|||
|---|---|---|---|
Помогите разобраться с Over в статистических функциях |
|||
|
#18+
a_voroninSatans Claws, 1)да 2) Код: sql 1. Это краткая запись более полной конструкции Код: sql 1. посмотрите как работает ROWS BETWEENЭто неверно, поскольку по умолчанию - RANGE, а не ROWS. Как это ни странно и очень печально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1687039]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
133ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 499ms |

| 0 / 0 |
