Ir para o conteúdo principal
Workday User Guide
Última atualização: 2023-06-23
MAX

MAX

Descrição

MAX
é uma função de agregação de janela que divide as linhas em grupos, ordena as linhas por um campo e retorna o valor máximo (mais alto) no grupo.
O
PARTITION BY
A cláusula determina quais campos usar para dividir um conjunto de linhas de entrada em grupos. O
ORDER BY
A cláusula determina como as linhas na partição são ordenadas.
O Workday separa as linhas de entrada em grupos de acordo com os campos de particionamento, ordena as linhas de acordo com os campos de ordenação e calcula a expressão de agregação (máximo para essa função) em cada grupo.

Sintaxe

MAX
(
input_field
)
OVER
(
PARTITION BY
partitioning_field
[,
partitioning_field
]
ORDER BY
ordering_field
[ASC | DESC] [,
ordering_field
[ASC | DESC]]
RANGE
BETWEEN
value
PRECEDING
AND
CURRENT ROW
|
ROWS
win_boundary
|
BETWEEN
win_boundary
AND
win_boundary
)
where
win_boundary
can be:
UNBOUNDED PRECEDING
value
PRECEDING
UNBOUNDED FOLLOWING
value
FOLLOWING
CURRENT ROW

Valor de retorno

O valor de retorno é do mesmo tipo de campo que o valor de entrada.

Parâmetros de entrada

input_field
É obrigatório. O campo no qual executar a função de agregação. Você pode usar qualquer campo numérico ou um campo de moeda.
OVER()
Obrigatório.
OVER
deve ser usado em um período de
MAX
expressão.
PARTITION BY
partição_field
É obrigatório. Use as teclas
PARTITION BY
Para especificar um ou mais campos a serem usados para particionar um grupo de linhas de entrada. Você pode especificar qualquer tipo de campo, exceto Moeda. Exemplo: você especifica o campo Mês como o campo de partição, para que o Workday agrupe em uma única partição todos os registros que têm o mesmo valor para Mês.
ORDER BY
order_field
É obrigatório. Use as teclas
ORDER BY
para especificar como ordenar as linhas de entrada na partição usando os valores no campo especificado dentro de cada partição. Você pode especificar qualquer tipo de campo, exceto Moeda. No entanto, você deve usar um tipo de campo numérico, como Inteiro ou Numérico quando usar o
RANGE
cláusula
Você pode usar o botão
DESC
ou
ASC
Palavras-chave para classificar em ordem decrescente (valores do mais alto para o menor, valores NULL são os últimos) ou crescente (valores do menor para o maior, valores NULL são os primeiros) para cada campo de ordenação. Se você não especifica uma ordem de classificação para um campo de ordenação, o Workday classifica as linhas automaticamente em ordem crescente.
LINHAS | INTERVALO
É obrigatório. O
ROWS
e
RANGE
As cláusulas definem o número específico de linhas (em relação à linha atual) dentro da partição especificando uma quadro de janela. Você define a estrutura da janela especificando os pontos de início e de término dentro da partição, conhecidos como limites da janela. A estrutura da janela é o conjunto de linhas de entrada em cada partição sobre a qual calcular a expressão de agregação (máxima para esta função). A estrutura da janela pode incluir uma, várias ou todas as linhas da partição.
Ambas
ROWS
e
RANGE
especificar o intervalo de linhas em relação à linha atual, mas
RANGE
opera logicamente em valores (associação lógica) e
ROWS
opera fisicamente em linhas do conjunto de dados (associação física).
RANGE
limita o quadro de janela para conter linhas com valores dentro do intervalo especificado, relativo ao valor atual.
ROWS
limita a estrutura da janela para conter as linhas que estão fisicamente próximas à linha atual.
Uso
RANGE
para definir limites absolutos da janela, como os últimos três meses ou o acumulado no ano. Quando você usa
RANGE
, o
ORDER BY
A cláusula deve usar um tipo de campo numérico, como Inteiro ou Numérico.
Exemplo: suponha que você tenha um campo de números inteiros chamado MonthNum que represente o número do mês no ano (valores de 1 a 12). Para especificar todos os valores dos últimos três meses, classifique por MonthNum e use
RANGE BETWEEN 2 PRECEDING AND CURRENT ROW
. Essa cláusula RANGE inclui o mês atual e os dois meses anteriores, resultando em um total de três meses.
Quando você publica um conjunto de dados que contém uma função de janela usando
RANGE
, o número de linhas na janela deve ser igual ou inferior a 1.000. Se uma janela específica excede 1.000 linhas, a tarefa de publicação falha.
win_boundary
É obrigatório. Os limites da janela definem os pontos inicial e final da caixa da janela. Os limites da janela são relativos à linha atual.
A
PRECEDING
A cláusula define um limite de janela que é inferior à linha atual (o número de linhas a incluir antes da linha atual). O
FOLLOWING
A cláusula define um limite de janela que é maior que a linha atual (o número de linhas a serem incluídas após a linha atual).
Se você especifica somente um limite de janela, o Workday usa a linha atual como o outro limite na caixa de janela (limite superior ou inferior, dependendo da sintaxe da expressão). O
UNBOUNDED
A palavra-chave inclui todas as linhas na direção especificada. Quando você precisar especificar o início e o fim de uma estrutura de janela, use o
BETWEEN
e
AND
palavras-chave
Ao especificar um número específico de linhas, o
valor
deve ser igual ou inferior a 100.
Exemplo:
ROWS 2 PRECEDING
significa que a janela tem um tamanho de três linhas, começando com as duas linhas anteriores até, e incluindo, a linha atual.
Exemplo:
ROWS UNBOUNDED FOLLOWING
significa que a janela começa com a linha atual e inclui essa e todas as linhas posteriores.

Exemplos

Exemplo: você tem um conjunto de dados com essas linhas e campos.
Organização de supervisão
Trimestre
Name
Alteração de remuneração
Marketing
2019-Q1
Goh
2000.00
Marketing
2019-Q1
Freeman
1000,00
Marketing
2019-Q1
Smith
2500.00
Consultando
2019-Q1
Gomez
5000.00
Consultando
2019-Q1
Kimura
3000.00
Consultando
2019-Q1
Fitz
3500.00
Consultando
2019-Q2
Gomez
0
Consultando
2019-Q2
Kimura
2000.00
Consultando
2019-Q2
Fitz
1.500,00
Você pode calcular a maior alteração na remuneração (campo
Alteração de remuneração
) para cada organização de supervisão em cada trimestre.
Para garantir que o Workday retorne o mesmo valor para todas as linhas em uma partição, organize as linhas em ordem decrescente (
DESC
) de acordo com o mesmo campo que o campo de entrada, de forma que a alteração de remuneração mais alta apareça primeiro em cada partição.
Use esta expressão no campo
Alteração de remuneração máxima
:
MAX([Comp Change]) OVER( PARTITION BY [Supervisory Org], [Quarter] ORDER BY [Comp Change] DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )
Você obtém estes resultados:
Organização de supervisão
Trimestre
Name
Alteração de remuneração
Alteração de remuneração máxima
Consultando
2019-Q1
Gomez
5000.00
5000.00
Consultando
2019-Q1
Fitz
3500.00
5000.00
Consultando
2019-Q1
Kimura
3000.00
5000.00
Consultando
2019-Q2
Kimura
2000.00
2000.00
Consultando
2019-Q2
Fitz
1.500,00
2000.00
Consultando
2019-Q2
Gomez
0
2000.00
Marketing
2019-Q1
Smith
2500.00
2500.00
Marketing
2019-Q1
Goh
2000.00
2500.00
Marketing
2019-Q1
Freeman
1000,00
2500.00