RMAX (оконная)

Синтаксис

RMAX( value [ , direction ] )
RMAX( value [ , direction ]
      [ TOTAL | WITHIN ... | AMONG ... ]
      [ ORDER BY ... ]
      [ BEFORE FILTER BY ... ]
    )

Подробнее:

Описание

Важно

Сортировка осуществляется на основе полей, перечисленных в области сортировки в чарте и в ORDER BY. При этом сначала берутся поля из ORDER BY.

Возвращает максимальное из значений в рамках окна записей, определяемого порядком сортировки и значением аргумента direction:

direction Окно
"asc" От первой записи до текущей.
"desc" От текущей записи до последней.

По умолчанию используется значение "asc".

Аналогичное поведение у оконных функций RSUM, RCOUNT, RMIN, RAVG.

См. также MAX, MMAX.

Типы аргументов:

  • valueЛогический | Дата | Дата и время | Дробное число | Целое число | Строка | UUID
  • directionСтрока

Возвращаемый тип: Совпадает с типом аргументов (value)

Примечание

Значения аргументов (direction) должны быть константами.

Примеры

Пример с группировкой

Исходные данные

Date City Category Orders Profit
'2019-03-01' 'London' 'Office Supplies' 8 120.80
'2019-03-04' 'London' 'Office Supplies' 2 100.00
'2019-03-05' 'London' 'Furniture' 1 750.00
'2019-03-02' 'Moscow' 'Furniture' 2 1250.50
'2019-03-03' 'Moscow' 'Office Supplies' 4 85.00
'2019-03-01' 'San Francisco' 'Office Supplies' 23 723.00
'2019-03-01' 'San Francisco' 'Furniture' 1 1000.00
'2019-03-03' 'San Francisco' 'Furniture' 4 4000.00
'2019-03-02' 'Detroit' 'Furniture' 5 3700.00
'2019-03-04' 'Detroit' 'Office Supplies' 25 1200.00
'2019-03-04' 'Detroit' 'Furniture' 2 3500.00

Группировка по [City], [Category].

Сортировка по [City], [Category].

Формулы:

  • City: [City] ;
  • Category: [Category] ;
  • Order Sum: SUM([Orders]) ;
  • RMAX TOTAL: RMAX(SUM([Orders]) TOTAL) ;
  • RMAX WITHIN: RMAX(SUM([Orders]) WITHIN [City]) ;
  • RMAX AMONG: RMAX(SUM([Orders]) AMONG [City]) .

Результат

City Category Order Sum RMAX TOTAL RMAX WITHIN RMAX AMONG
'Detroit' 'Furniture' 7 7 7 7
'Detroit' 'Office Supplies' 25 25 25 25
'London' 'Furniture' 1 25 1 7
'London' 'Office Supplies' 10 25 10 25
'Moscow' 'Furniture' 2 25 2 7
'Moscow' 'Office Supplies' 4 25 4 25
'San Francisco' 'Furniture' 5 25 5 7
'San Francisco' 'Office Supplies' 23 25 23 25
Пример с ORDER BY

Исходные данные

Date City Category Orders Profit
'2019-03-01' 'London' 'Office Supplies' 8 120.80
'2019-03-04' 'London' 'Office Supplies' 2 100.00
'2019-03-05' 'London' 'Furniture' 1 750.00
'2019-03-02' 'Moscow' 'Furniture' 2 1250.50
'2019-03-03' 'Moscow' 'Office Supplies' 4 85.00
'2019-03-01' 'San Francisco' 'Office Supplies' 23 723.00
'2019-03-01' 'San Francisco' 'Furniture' 1 1000.00
'2019-03-03' 'San Francisco' 'Furniture' 4 4000.00
'2019-03-02' 'Detroit' 'Furniture' 5 3700.00
'2019-03-04' 'Detroit' 'Office Supplies' 25 1200.00
'2019-03-04' 'Detroit' 'Furniture' 2 3500.00

Группировка по [City].

Сортировка по [City].

Формулы:

  • City: [City] ;
  • Order Sum: SUM([Orders]) ;
  • RMAX 1: RMAX(SUM([Orders]), "desc") ;
  • RMAX 2: RMAX(SUM([Orders]), "asc" ORDER BY [City] DESC) ;
  • RMAX 3: RMAX(SUM([Orders]) ORDER BY [Order Sum]) .

Результат

City Order Sum RMAX 1 RMAX 2 RMAX 3
'Detroit' 32 32 32 32
'London' 11 28 28 11
'Moscow' 6 28 28 6
'San Francisco' 28 28 28 28

Поддержка источников данных

ClickHouse 21.8, Microsoft SQL Server 2017 (14.0), MySQL 5.7, Oracle Database 12c (12.1), PostgreSQL 9.3.

Предыдущая
Следующая