histogram
values — Expressão que resulta nos valores de entrada.
Parâmetros
number_of_bins — Limite superior para o número de bins no histograma. A função calcula automaticamente o número de bins. Ela tenta atingir o número especificado de bins, mas, se não conseguir, usa menos bins.
Valores retornados
-
Array de Tuplas no seguinte formato:
lower— Limite inferior do bin.upper— Limite superior do bin.height— Altura calculada do bin.
sequenceMatch
Eventos que ocorrem no mesmo segundo podem aparecer na sequência em uma ordem indefinida, afetando o resultado.
-
timestamp— Coluna que contém dados temporais. Os tipos de dados típicos sãoDateeDateTime. Você também pode usar qualquer um dos tipos de dados UInt suportados. -
cond1,cond2— Condições que descrevem a sequência de eventos. Tipo de dado:UInt8. Você pode passar até 32 argumentos de condição. A função considera apenas os eventos descritos nessas condições. Se a sequência contiver dados não descritos por nenhuma condição, a função os ignora.
pattern— string de padrão. Consulte Sintaxe do padrão.
- 1, se houver correspondência com o padrão.
- 0, se não houver correspondência com o padrão.
UInt8.
Sintaxe do padrão
-
(?N)— Corresponde ao argumento de condição na posiçãoN. As condições são numeradas no intervalo[1, 32]. Por exemplo,(?1)corresponde ao argumento passado para o parâmetrocond1. -
.*— Corresponde a qualquer número de eventos. Você não precisa de argumentos condicionais para corresponder a esse elemento do padrão. -
(?t operator value)— Define o tempo, em segundos, que deve separar dois eventos. Por exemplo, o padrão(?1)(?t>1800)(?2)corresponde a eventos que ocorrem com mais de 1800 segundos de diferença entre si. Pode haver qualquer número de eventos entre esses eventos. Você pode usar os operadores>=,>,<,<=,==.
t:
sequenceCount
Eventos que ocorrem no mesmo segundo podem ficar na sequência em uma ordem indefinida, afetando o resultado.
-
timestamp— Coluna considerada como contendo dados de tempo. Os tipos de dados mais comuns sãoDateeDateTime. Você também pode usar qualquer um dos tipos de dados UInt compatíveis. -
cond1,cond2— Condições que descrevem a cadeia de eventos. Tipo de dado:UInt8. Você pode passar até 32 argumentos de condição. A função considera apenas os eventos descritos nessas condições. Se a sequência contiver dados que não estejam descritos em uma condição, a função os ignora.
pattern— String de padrão. Consulte Sintaxe do padrão.
- Número de cadeias de eventos não sobrepostas correspondentes.
UInt64.
Exemplo
Considere os dados na tabela t:
sequenceMatchEvents
Eventos que ocorrem no mesmo segundo podem ficar na sequência em uma ordem indefinida, o que afeta o resultado.
-
timestamp— Coluna considerada como contendo dados de tempo. Os tipos de dados mais comuns sãoDateeDateTime. Você também pode usar qualquer um dos tipos de dados UInt compatíveis. -
cond1,cond2— Condições que descrevem a cadeia de eventos. Tipo de dado:UInt8. Você pode passar até 32 argumentos de condição. A função considera apenas os eventos descritos nessas condições. Se a sequência contiver dados que não estejam descritos em uma condição, a função os ignora.
pattern— String de padrão. Veja Sintaxe do padrão.
- Array de timestamps para os argumentos de condição correspondentes (?N) da cadeia de eventos. A posição no array corresponde à posição do argumento de condição no padrão
t:
windowFunnel
- A função procura dados que disparam a primeira condição da cadeia e define o contador de eventos como 1. Esse é o momento em que a janela deslizante começa.
- Se os eventos da cadeia ocorrerem sequencialmente dentro da janela, o contador será incrementado. Se a sequência de eventos for interrompida, o contador não será incrementado.
- Se os dados tiverem várias cadeias de eventos em diferentes estágios de conclusão, a função retornará apenas o tamanho da cadeia mais longa.
timestamp— Nome da coluna que contém o timestamp. Tipos de dados compatíveis: Date, DateTime e outros tipos inteiros sem sinal (observe que, embora o timestamp seja compatível com o tipoUInt64, seu valor não pode exceder o valor máximo de Int64, que é 2^63 - 1).cond— Condições ou dados que descrevem a cadeia de eventos. UInt8.
window— Duração da janela deslizante; é o intervalo de tempo entre a primeira e a última condição. A unidade dewindowdepende do própriotimestampe varia. Ela é determinada usando a expressãotimestamp de cond1 <= timestamp de cond2 <= ... <= timestamp de condN <= timestamp de cond1 + window.mode— É um argumento opcional. Um ou mais modos podem ser definidos.'strict_deduplication'— Se a mesma condição for válida para a sequência de eventos, esse evento repetido interrompe o processamento subsequente. Observação: pode funcionar de forma inesperada se várias condições forem válidas para o mesmo evento.'strict_order'— Não permite a interferência de outros eventos. Por exemplo, no caso deA->B->D->C, ele para de encontrarA->B->CemD, e o nível máximo de evento é 2.'strict_increase'— Aplica condições apenas a eventos com timestamps estritamente crescentes.'strict_once'— Conta cada evento apenas uma vez na cadeia, mesmo que ele atenda à condição várias vezes.'allow_reentry'— Ignora eventos que violam a ordem estrita. Por exemplo, no caso de A->A->B->C, ele encontra A->B->C ignorando o A redundante, e o nível máximo de evento é 3.
Integer.
Exemplo
Determine se um determinado período é suficiente para o usuário selecionar um celular e comprá-lo duas vezes na loja online.
Defina a seguinte cadeia de eventos:
- O usuário fez login na conta da loja (
eventID = 1003). - O usuário procura um celular (
eventID = 1007, product = 'phone'). - O usuário fez um pedido (
eventID = 1009). - O usuário fez o pedido novamente (
eventID = 1010).
user_id conseguiu avançar na sequência em um período entre janeiro e fevereiro de 2019.
Query
Response
allow_reentry funciona com padrões de reentrada do usuário:
retention
UInt8, que representam um conjunto de condições e indicam se determinada condição foi atendida para o evento.
Qualquer condição pode ser especificada como argumento (como em WHERE).
As condições, exceto a primeira, são aplicadas em pares: o resultado da segunda será verdadeiro se a primeira e a segunda forem verdadeiras; o da terceira, se a primeira e a terceira forem verdadeiras; e assim por diante.
Sintaxe
cond— Uma expressão que retorna um resultadoUInt8(1 ou 0).
- 1 — A condição foi atendida para o evento.
- 0 — A condição não foi atendida para o evento.
UInt8.
Exemplo
Vamos considerar um exemplo de cálculo da função retention para determinar o tráfego do site.
1. Crie uma tabela para ilustrar o exemplo.
Query
Query
Response
uid usando a função retention.
Query
Response
Query
Response
r1- o número de visitantes únicos que visitaram o site em 2020-01-01 (a condiçãocond1).r2- o número de visitantes únicos que visitaram o site durante um período específico entre 2020-01-01 e 2020-01-02 (as condiçõescond1econd2).r3- o número de visitantes únicos que visitaram o site durante um período específico em 2020-01-01 e 2020-01-03 (as condiçõescond1econd3).
uniqUpTo(N)(x)
N. Se o número de valores distintos do argumento for maior que N, esta função retorna N + 1; caso contrário, calcula o valor exato.
Recomendado para uso com N pequenos, até 10. O valor máximo de N é 100.
Para o estado de uma função de agregação, esta função usa uma quantidade de memória igual a 1 + N * o tamanho, em bytes, de um valor.
Ao lidar com strings, esta função armazena um hash não criptográfico de 8 bytes; o cálculo é aproximado para strings.
Por exemplo, se você tivesse uma tabela que registra cada consulta de pesquisa feita pelos usuários no seu site. Cada linha na tabela representa uma única consulta de pesquisa, com colunas para o ID do usuário, a consulta de pesquisa e o timestamp da consulta. Você pode usar uniqUpTo para gerar um relatório que mostre apenas as palavras-chave que produziram pelo menos 5 usuários únicos.
uniqUpTo(4)(UserID) calcula o número de valores únicos de UserID para cada SearchPhrase, mas conta apenas até 4 valores únicos. Se houver mais de 4 valores únicos de UserID para uma SearchPhrase, a função retornará 5 (4 + 1). A cláusula HAVING então filtra os valores de SearchPhrase para os quais o número de valores únicos de UserID é menor que 5. Isso fornecerá uma lista de palavras-chave de pesquisa que foram usadas por pelo menos 5 usuários únicos.
sumMapFiltered
sumMapFiltered(keys_to_keep)(keys, values)
Parâmetros
Valor retornado
- Retorna uma tupla de dois arrays: chaves em ordem classificada e valores somados para as chaves correspondentes.
Query
Query
Response
sumMapFilteredWithOverflow
sumMapFilteredWithOverflow(keys_to_keep)(keys, values)
Parâmetros
Valor retornado
- Retorna uma tupla de dois arrays: chaves ordenadas e valores somados para as chaves correspondentes.
sum_map, inserimos alguns dados nela e, em seguida, usamos sumMapFilteredWithOverflow, sumMapFiltered e a função toTypeName para comparar o resultado. Como requests era do tipo UInt8 na tabela criada, sumMapFiltered promoveu o tipo dos valores somados para UInt64 para evitar overflow, enquanto sumMapFilteredWithOverflow manteve o tipo como UInt8, que não é grande o suficiente para armazenar o resultado — ou seja, ocorreu overflow.
Query
Query
Query
Response
Response
sequenceNextNode
SET allow_experimental_funnel_functions = 1 para habilitá-la.
Sintaxe
-
direction— Usado para especificar a direção.- forward — Avança.
- backward — Retrocede.
-
base— Usado para definir o ponto base.- head — Define o ponto base como o primeiro evento.
- tail — Define o ponto base como o último evento.
- first_match — Define o ponto base como o primeiro
event1correspondente. - last_match — Define o ponto base como o último
event1correspondente.
timestamp— Nome da coluna que contém o timestamp. Tipos de dados compatíveis: Date, DateTime e outros tipos inteiros sem sinal.event_column— Nome da coluna que contém o valor do próximo evento a ser retornado. Tipos de dados compatíveis: String e Nullable(String).base_condition— Condição que o ponto base deve atender.event1,event2, … — Condições que descrevem a cadeia de eventos. UInt8.
event_column[next_index]— Se houver correspondência com o padrão e o próximo valor existir.NULL- Se não houver correspondência com o padrão ou o próximo valor não existir.
Query
Response
forward e head
backward e tail
forward e first_match
backward e last_match
base_condition