Класс WindowExpression
Это представляет собой SQL выражение окна, используемое агрегатными и оконными функциями.
Константы
-
stringFOLLOWING'FOLLOWING'
-
stringGROUPS'GROUPS'
-
stringPRECEDING'PRECEDING'
-
stringRANGE'RANGE'
-
stringROWS'ROWS'
Резюме свойств
- $exclusion protected
string|null - $frame protected
array|null - $name protected
Cake\Database\Expression\IdentifierExpression - $order protected
Cake\Database\Expression\OrderByExpression|null - $partitions protected
arrayCake\Database\ExpressionInterface>
Резюме методов
-
__clone() public
Клонировать этот объект и его поддерево выражений.
-
__construct() public
-
buildOffsetSql() protected
Создает SQL для смещения кадра.
-
excludeCurrent() public
Добавляет исключение текущей строки кадра.
-
excludeGroup() public
Добавляет исключение кадра группы.
-
excludeTies() public
Добавляет исключение кадра ничьих.
-
frame() public
Добавляет кадр к окну.
-
groups() public
Добавляет простой кадр групп к окну.
-
isNamedOnly() public
Возвращает, является ли это только именованным выражением окна.
-
name() public
Устанавливает имя окна.
-
order() public
Добавляет одну или несколько клаузул ORDER к окну.
-
partition() public
Добавляет одно или несколько выражений разбиения к окну.
-
range() public
Добавляет простой кадр диапазона к окну.
-
rows() public
Добавляет простой кадр строк к окну.
-
sql() public
Преобразует узел в фрагмент SQL-строки.
-
traverse() public
Итерирует по каждой части выражения рекурсивно для каждого уровня дерева выражений и выполняет вызываемый $callback, передавая в качестве первого параметра экземпляр выражения, по которому в данный момент происходит итерация.
Подробное описание методов
__clone() public
__clone(): void
Клонировать этот объект и его поддерево выражений.
Возвращает
void__construct() public
__construct(string $name = '')
Параметры
-
string$name необязательно Имя окна
buildOffsetSql() protected
buildOffsetSql(Cake\Database\ValueBinder $binder, Cake\Database\ExpressionInterface|string|int|null $offset, string $direction): string
Создаёт SQL для смещения фрейма.
Параметры
-
Cake\Database\ValueBinder$binder Привязка значений
-
Cake\Database\ExpressionInterface|string|int|null$offset Смещение фрейма
-
string$direction Направление смещения фрейма
Возвращает
stringexcludeCurrent() public
excludeCurrent(): $this
Добавляет исключение текущей строки фрейма.
Возвращает
$thisexcludeGroup() public
excludeGroup(): $this
Добавляет исключение группы фрейма.
Возвращает
$thisexcludeTies() public
excludeTies(): $this
Добавляет исключение связей фрейма.
Возвращает
$thisframe() public
frame(string $type, Cake\Database\ExpressionInterface|string|int|null $startOffset, string $startDirection, Cake\Database\ExpressionInterface|string|int|null $endOffset, string $endDirection): $this
Добавляет фрейм к окну.
Используйте помощники range(), rows() или groups(), если вам нужны простые фреймы 'BETWEEN offset PRECEDING and offset FOLLOWING'.
Вы можете указать любое направление для начала и конца фрейма.
С $startOffset и $endOffset:
-
0- 'ТЕКУЩАЯ СТРОКА' -
null- 'БЕЗГРАНИЧНЫЙ'
Параметры
-
string$type -
Cake\Database\ExpressionInterface|string|int|null$startOffset -
string$startDirection -
Cake\Database\ExpressionInterface|string|int|null$endOffset -
string$endDirection
Возвращает
$thisgroups() public
groups(int|null $start, int|null $end = 0): $this
Добавляет простой фрейм группы к окну.
См. range() для деталей.
Параметры
-
int|null$start -
int|null$end необязательно
Возвращает
$thisisNamedOnly() public
isNamedOnly(): bool
Возвращает, является ли это только выражением именованного окна.
Эти выражения окон указывают только имя окна и не определяют свои разделы, фреймы или порядок.
Возвращает
boolname() public
name(string $name): $this
Устанавливает имя окна.
Параметры
-
string$name Имя окна
Возвращает
$thisorder() public
order(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $fields): $this
Добавляет одну или несколько инструкций ORDER к окну.
Параметры
-
Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string$fields
Возвращает
$thispartition() public
partition(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $partitions): $this
Добавляет одно или несколько выражений разбиения в окно.
Параметры
-
Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string$partitions
Возвращает
$thisrange() public
range(Cake\Database\ExpressionInterface|string|int|null $start, Cake\Database\ExpressionInterface|string|int|null $end = 0): $this
Добавляет простой фрейм диапазона к окну.
$start:
-
0- 'ТЕКУЩАЯ СТРОКА' -
null- 'БЕЗГРАНИЧНЫЙ ПРЕДШЕСТВУЮЩИЙ' - offset - 'offset ПРЕДШЕСТВУЮЩИЙ'
$end:
-
0- 'ТЕКУЩАЯ СТРОКА' -
null- 'БЕЗГРАНИЧНЫЙ СЛЕДУЮЩИЙ' - offset - 'offset СЛЕДУЮЩИЙ'
Если вам нужно использовать 'FOLLOWING' для начала фрейма или 'PRECEDING' для конца фрейма, используйте frame() вместо этого.
Параметры
-
Cake\Database\ExpressionInterface|string|int|null$start -
Cake\Database\ExpressionInterface|string|int|null$end необязательно
Возвращает
$thisrows() public
rows(int|null $start, int|null $end = 0): $this
Добавляет простой фрейм строк к окну.
См. range() для деталей.
Параметры
-
int|null$start -
int|null$end необязательно
Возвращает
$thissql() public
sql(Cake\Database\ValueBinder $binder): string
Преобразует узел в фрагмент SQL.
Параметры
-
Cake\Database\ValueBinder$binder
Возвращает
stringtraverse() public
traverse(Closure $callback): $this
Итерируется по каждой части выражения рекурсивно для каждого уровня дерева выражений и выполняет вызов $callback, передавая в качестве первого параметра экземпляр выражения, по которому в данный момент итерируется.
Параметры
-
Closure$callback
Возвращает
$thisПодробное описание свойств
$exclusion protected
Тип
string|null$frame protected
Тип
array|null$name protected
Тип
Cake\Database\Expression\IdentifierExpression$order protected
Тип
Cake\Database\Expression\OrderByExpression|null$partitions protected
Тип
arrayCake\Database\ExpressionInterface>
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.3/class-Cake.Database.Expression.WindowExpression.html