kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 serkan
serkan
Вопрос

Как я могу использовать SUM() OVER()

Я не могу понять ошибку этого кода.

ID      AccountID       Quantity
1          1               10           Sum = 10
2          1               5                = 10 + 5 = 15
3          1               2                = 10 + 5 + 2 = 17
4          2               7                = 7
5          2               3                = 7 + 3 = 10  

SELECT ID, AccountID, Quantity, 
       SUM(Quantity) OVER (PARTITION BY AccountID ) AS TopBorcT, 
FROM tCariH
18 2012-04-06T05:18:06+00:00 3
Willi Mentzel
Willi Mentzel
Редактировал вопрос 27-го апреля 2015 в 11:24
Программирование
sql
sum
Andriy M
Andriy M
6-го апреля 2012 в 8:22
2012-04-06T08:22:18+00:00
Дополнительно
Источник
Редактировать
#15872758

Похоже, что вы ожидали, что запрос вернет текущие итоговые значения, но он должен был выдать вам одинаковые значения для обоих разделов AccountID.

Чтобы получить промежуточные итоги с помощью SUM() OVER (), вам нужно добавить подпункт ORDER BY после PARTITION BY ..., например, так:

SUM(Quantity) OVER (PARTITION BY AccountID ORDER BY ID)

Но помните, что не все системы баз данных поддерживают ORDER BY в предложении OVER агрегатной функции окна. (Например, SQL Server не поддерживал эту функцию до последней версии SQL Server 2012).

27
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 UV.
UV.
29-го мая 2013 в 3:24
2013-05-29T03:24:01+00:00
Дополнительно
Источник
Редактировать
#15872759

если вы используете SQL 2012, вам следует попробовать

SELECT  ID, 
        AccountID, 
        Quantity, 
        SUM(Quantity) OVER (PARTITION BY AccountID ORDER BY AccountID rows between unbounded preceding and current row ) AS TopBorcT, 
FROM tCariH

если есть, лучше упорядочить по столбцу даты.

8
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 AjaySharma2061
AjaySharma2061
9-го декабря 2015 в 9:36
2015-12-09T09:36:30+00:00
Дополнительно
Источник
Редактировать
#15872760

Запрос будет выглядеть следующим образом:

SELECT ID, AccountID, Quantity, 
       SUM(Quantity) OVER (PARTITION BY AccountID ) AS TopBorcT 

       FROM #Empl ORDER BY AccountID

Разбиение на разделы работает так же, как группировка по. Здесь мы группируем по AccountID, поэтому сумма будет соответствовать AccountID.

Первый первый случай, AccountID = 1, тогда sum(quantity) = 10 + 5 + 2 => 17 & Для AccountID = 2, тогда sum(Quantity) = 7+3 => 10

Таким образом, результат будет выглядеть как на прилагаемом snapshot.

 xan
xan
Редактировал ответ 9-го декабря 2015 в 9:55
2
0
Похожие сообщества 4
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
3 771 пользователей
Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.
Открыть telegram
sql_ninja
sql_ninja
2 636 пользователей
Канал для тех, кто знает или интересуется SQL 🛢 Взаимная помощь и позитив =) Вакансии тут - @sql_jobs Бан за: оскорбления, спам, фри рекламу, расизм, сексизм. Наш MSSQL канал - @sqlcom По рекламе: @aveLestat
Открыть telegram
SQL JOBS
SQL JOBS
2 600 пользователей
Обязательны: компания, город, позиция, вилка, наличие удалёнки, требования, контакты. Бан за рекламу, сексизм, расизм и неадекватный обсёр объявлений
Открыть telegram
Lazarus : Database (Firebird, mySQL, SQLite, PostgreSQL, ...)
37 пользователей
Базы данных в Lazarus https://t.me/Delphi_Lazarus (по-русски) https://t.me/Delphi_Lazarus_offtop https://t.me/freepascal_en (по-английски) по темам: https://t.me/Lazarus_Database https://t.me/Lazarus_Graphics https://t.me/Lazarus_Android
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Александр Македонский
Зарегистрирован 6 дней назад
2
Andrei Kalinin
Зарегистрирован 3 недели назад
3
Koroleva Ego
Зарегистрирован 1 месяц назад
4
Star Lenon
Зарегистрирован 1 месяц назад
5
Данил Жевнеров
Зарегистрирован 2 месяца назад
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
DE
ES
ID
JA
RU
TR
ZH
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией