[SQL] explicá-los DTM algumas perguntas da entrevista de análise de dados populares

Reproduzido Fonte: https://mp.weixin.qq.com/s/Qg1Bacw5ta9Jnbs6ImqAZw

 

fundo

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 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.

 

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 problema 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 problema de referência :

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

 

3, o topo de uma pequena plataforma de vídeo perguntas da entrevista de 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 problema 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_7from user_login_table) b where b.date is not nulland date_sub(cast(b.date as date,7)) = cast(b.date_7 as date)

 

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 44 artigos originais · ganhou elogios 16 · vê 10000 +

Acho que você gosta

Origin blog.csdn.net/YYIverson/article/details/105078581
Recomendado
Clasificación