Вопросы с тегом «window-functions»

Функция, которая разбивает результирующий набор и вычисляет что-то в этом разделе без объединения данных в этом разделе.

6
Скользящая сумма диапазона дат с использованием оконных функций
Мне нужно рассчитать скользящую сумму по диапазону дат. Чтобы проиллюстрировать это, используя пример базы данных AdventureWorks , следующий гипотетический синтаксис сделал бы именно то, что мне нужно: SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = SUM(TH.ActualCost) OVER ( PARTITION BY TH.ProductID ORDER BY TH.TransactionDate RANGE BETWEEN INTERVAL 45 DAY PRECEDING AND CURRENT …

2
MySQL и оконные функции
Кажется, что MySQLне поддерживает оконные функции. Например, простое: COUNT(*) OVER() AS cntне работает. Что я не уверен, так это то, относится ли это к коммерческой версии (я полагаю, что версия сообщества ограничена). Если нет, то как обойти эту недостающую функцию?

4
Ограничить результаты до первых 2 строк рейтинга
В SQL Server 2008 я использую, RANK() OVER (PARTITION BY Col2 ORDER BY Col3 DESC)чтобы вернуть набор данных с RANK. Но у меня есть сотни записей для каждого раздела, поэтому я получу значения с рангом 1, 2, 3 ... 999. Но я хочу только до 2 RANKsв каждом PARTITION. Пример: …

4
Использование DISTINCT в оконной функции с OVER
Я пытаюсь перенести запрос из Oracle в SQL Server 2014. Вот мой запрос, который прекрасно работает в Oracle: select count(distinct A) over (partition by B) / count(*) over() as A_B from MyTable Вот ошибка, которую я получил после того, как попытался выполнить этот запрос в SQL Server 2014. Use of …

6
Найти «n» последовательных свободных номеров из таблицы
У меня есть таблица с такими номерами (статус БЕСПЛАТНЫЙ или НАЗНАЧЕН) Идентификационный номер ----------------------- 1 000001 НАЗНАЧЕН 1 000002 БЕСПЛАТНО 1 000003 НАЗНАЧЕН 1 000004 БЕСПЛАТНО 1 000005 БЕСПЛАТНО 1 000006 НАЗНАЧЕН 1 000007 НАЗНАЧЕН 1 000008 БЕСПЛАТНО 1 000009 БЕСПЛАТНО 1 000010 БЕСПЛАТНО 1 000011 НАЗНАЧЕН 1 000012 НАЗНАЧЕН …

1
Подведение итогов к предыдущему ряду
Мне нужна помощь с оконными функциями. Я знаю, что вы можете рассчитать сумму в окне и промежуточную сумму в окне. Но возможно ли рассчитать предыдущий промежуточный итог, т.е. промежуточный итог, не включая текущую строку? Я предполагаю, что вам нужно будет использовать аргумент ROWили RANGE. Я знаю, что есть CURRENT ROWопция, …

7
Группировка или Окно
У меня есть ситуация, я думаю, может быть решена с помощью оконной функции, но я не уверен. Представьте себе следующую таблицу CREATE TABLE tmp ( date timestamp, id_type integer ) ; INSERT INTO tmp ( date, id_type ) VALUES ( '2017-01-10 07:19:21.0', 3 ), ( '2017-01-10 07:19:22.0', 3 ), ( …


1
Объедините две таблицы событий в одну временную шкалу
Даны две таблицы: CREATE TABLE foo (ts timestamp, foo text); CREATE TABLE bar (ts timestamp, bar text); Я хочу написать запрос, который возвращает значения для ts, fooи barкоторый представляет собой единое представление самых последних значений. Другими словами, если fooсодержится: ts | foo -------- 1 | A 7 | B и …

2
Выберите самую длинную непрерывную последовательность
Я пытаюсь построить запрос в PostgreSQL 9.0, который получает самую длинную последовательность непрерывных строк для определенного столбца. Рассмотрим следующую таблицу: lap_id (serial), lap_no (int), car_type (enum), race_id (int FK) Где lap_noуникально для каждого (race_id, car_type). Я хотел бы, чтобы запрос производил самую длинную последовательность для данного race_idи car_type, таким образом, …

1
Почему агрегат окна пакетного режима дает арифметическое переполнение?
Следующий запрос выполняет оконное SUMотображение над таблицей columnstore 1500 total rows, каждый из которых имеет значение 0 или 1, и переполняет INTтип данных. Почему это происходит? SELECT a, p, s, v, m, n, SUM(CASE WHEN n IS NULL THEN 0 ELSE 1 END) OVER (PARTITION BY s, v, a ORDER …

1
Как получить агрегат оконной функции в Postgres?
У меня есть таблица, содержащая два столбца перестановок / комбинаций целочисленных массивов, и третий столбец, содержащий значение, например, так: CREATE TABLE foo ( perm integer[] NOT NULL, combo integer[] NOT NULL, value numeric NOT NULL DEFAULT 0 ); INSERT INTO foo VALUES ( '{3,1,2}', '{1,2,3}', '1.1400' ), ( '{3,1,2}', '{1,2,3}', …

4
Как я могу написать оконный запрос, который суммирует столбец для создания отдельных сегментов?
У меня есть таблица, которая включает в себя столбец десятичных значений, таких как это: id value size -- ----- ---- 1 100 .02 2 99 .38 3 98 .13 4 97 .35 5 96 .15 6 95 .57 7 94 .25 8 93 .15 То, что мне нужно сделать, немного …

2
Использование функции окна для переноса первого ненулевого значения в разделе
Рассмотрим таблицу, в которой записываются посещения create table visits ( person varchar(10), ts timestamp, somevalue varchar(10) ) Рассмотрим данные этого примера (временная метка упрощена как счетчик) ts| person | somevalue ------------------------- 1 | bob |null 2 | bob |null 3 | jim |null 4 | bob | A 5 | …

1
Сравнение производительности между использованием функции Join и Window для получения значений опережения и отставания
У меня есть таблица с 20М строк, а каждая строка имеет 3 колонки: time, id, и value. Для каждого idи timeесть valueстатус. Я хочу знать опережающие и запаздывающие значения определенного timeдля конкретного id. Я использовал два метода для достижения этой цели. Один метод использует соединение, а другой - использование опережающих …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.