Populares analíticos perguntas da entrevista de análise de dados (acabamento)

I. Antecedentes

SQL há uma classe de funções chamadas funções de agregação, tais como a contagem, soma, média, min, max , estas funções podem ser várias linhas de dados de acordo com a estruturada agregados em uma linha, linha de dados geral antes de o agregado é maior do que a linha de dados depois de agregação. E às vezes nós não queremos apenas os dados antes de agregação, após agregação de dados que eles querem, quando eles introduziram esta função janela, Hive resumo função de janela .

Seguindo algumas perguntas rosto DTM explicar como usar a função janela. Conhecimento se refere a funções da janela de triagem, agrupamento consulta o usuário para a função de janela para a função janela de análise de deslocamento, cada um vai perguntas rosto respondida por um tema de fundo.

Em segundo lugar, o texto

1, um top take-plataforma perguntas da entrevista analista de dados . User_goods_table tabela de dados transação existente da seguinte forma:

  • nome de usuário user_name

  • goods_kind usuário ordenou categoria takeaway

Agora, o chefe quer conhecer cada usuário comprar takeaway distribuição categoria de preferência, e remover cada usuário para comprar até categoria takeaway é que.

requisitos de saída são os seguintes:

  • nome de usuário user_name

  • goods_kind a maioria dos usuários para comprar categoria take-away

Ideias, determinado usando uma função de janela para cada usuário row_number cada categoria escalão número para posterior distribuição, e retire a primeira categoria classificada ou seja, o usuário adquire a categoria mais takeaway.

Solução de referência:

select b.user_name,b.goods_kind from
(select 
user_name,
goods_kind,
row_number() over(partition by user_name 
order by count(goods_kind) desc ) as rank 
from user_goods_table) b where b.rank =1 

2, uma plataforma de pagamento principais perguntas da entrevista de análise de dados . User_sales_table tabela de dados transação existente da seguinte forma:

  • nome de usuário user_name

  • valor do pagamento utilizador pay_amount

Agora o chefe quer saber 20% do valor pago ao usuário anterior.

requisitos de saída são os seguintes:

  • nome de utilizador nome_usuario (o topo de 10% dos utilizadores)

Ideia, NTILE usando funções de janela correspondentes para cada utilizador e a quantia do pagamento em 5 grupos (cada grupo de modo que existe 1/5), para dar um primeiro pacote de utilizador classificou efectuado antes de o grupo de utilizadores ou seja, 20% do valor anterior. (Note que este é de 20% da demanda antes que o usuário, em vez do usuário obrigado a pagar o top 20)

Solução de referência:

select b.user_name from 
(select 
user_name,
ntile(5) over(order by sum(pay_amount) desc) as level
from user_sales_table group by user_name ) b 
where b.level = 1

3, um top de plataforma de vídeo perguntas pequena entrevista análise de dados . Já utilizador de login mesa user_login_table da seguinte forma:

  • nome de usuário user_name

  • data hora do login do usuário

Agora o chefe quer saber utilizadores importantes 7 dias em uma plataforma de linha de pouso.

requisitos de saída são os seguintes:

  • nome de utilizador nome_usuario (7 dias seguidos o número de utilizadores registados no)

Idéias, primeiro protagonista com uma função janela de deslocamento é obtido para cada login do usuário tempo de mudança para trás 7 linhas cada vez aterragem, e, em seguida, calcular para cada usuário lag tempo de login por 7 dias cada vez pouso, se cada usuário 7, linha de desvio de tempo de pouso para trás exatamente igual ao tempo de atraso de 7 dias, indicando que o usuário tenha desembarcado 7 dias consecutivos.

Solução de referência:

select b.user_name
(select user_name,
date,lead(date,7) 
over(partition by user_name order by date desc) as date_7
from user_login_table) b 
where b.date is not null
and date_sub(cast(b.date as date,7)) = cast(b.date_7 as date)

Em terceiro lugar, o resumo

Neste trabalho, a análise dos dados de três perguntas da entrevista para entender a função de janela cenários de aplicação prática, é claro, o pressuposto é que já sabemos a sintaxe, usando a função de janela função de janela, na verdade pode ser medido como um sql maestria analista de dados de capacidade, é claro, não importa o tipo de uso tem que aprender a fundo aplicação pensamento prático porque você precisa dessa função de análise.

Publicado 334 artigos originais · ganhou elogios 227 · vê 80000 +

Acho que você gosta

Origin blog.csdn.net/BeiisBei/article/details/104863581
Recomendado
Clasificación