Exemplos de consultas para seus dados

Neelke Stadler Atualizado por Neelke Stadler

É incrível o que você aprende sobre seus usuários observando seus dados.

Seus dados do WhatsApp podem ser usados ​​para entender seus usuários e seu comportamento para, em última análise, melhorar seu serviço, tanto online quanto offline. A análise que você pode fazer é infinita, mas compartilhamos alguns exemplos de consultas para ajudá-lo a começar.

Você encontrará ótimos recursos on-line, e muitas de suas perguntas sobre como escrever consultas específicas para responder a algumas de suas questões candentes provavelmente já foram respondidas por comunidades on-line, como Stack Overflow. Um excelente ponto de partida é a documentação SQL padrão do BigQuery, especificamente a seção Funções e operadores.

Algumas dicas

  • Crie um novo conjunto de dados no BigQuery, por exemplo. chamado Relatórios e salve resultados de consulta importantes que você gostaria de visualizar em uma tabela dedicada em seu novo conjunto de dados.
  • Dessa forma, é fácil visualizar o resultado (por exemplo, contagens diárias) no Data Studio usando o BigQuery e selecionando o conjunto de dados e a tabela específicos como fonte de dados.
  • O BigQuery permite agendar uma atualização de consulta para garantir que você tenha dados atualizados para seu painel.

Exemplo Consultas

  • Usuários únicos: conte o número de usuários únicos que interagiram com seu serviço desde o início:
selecione contagem(id distinto) em `<seu número>.chats`
  • Detalhes do bate-papo: obtenha os detalhes mais recentes do bate-papo de um usuário sem duplicação:
select t.* 
from(
select *,
RANK() OVER(PARTITION BY id ORDER BY updated_at DESC) as rank
from `<your number>.chats`
)t
WHERE rank = 1
  • Contagens diárias: Obtenha as contagens diárias de usuários ativos (divididos entre novas e retornadas) e total de mensagens (divididas entre enviadas e recebidas)
SELECT date(messages.inserted_at) AS day,
count(distinct chats.owner) as Daily_Active_Users,
count(distinct IF(date(chats.inserted_at) = date(messages.inserted_at), chats.owner, NULL)) como Daily_New_Users,
count(distinct IF(date(chats.inserted_at) <> date(messages.inserted_at), chats.owner, NULL)) como Daily_Returning_Users,
count(distinct messages.id) como Daily_Total_Messages,
count(distinct IF(messages.direction='inbound', messages.id, NULL)) como Daily_Received_Messages,
count(distinct IF(messages.direction='outbound', messages.id, NULL)) como Daily_Sent_Messages,
count(distinct messages.id)/count(distinct chats.owner) as Messages_per_User
FROM `<seu número>.chats` como chats
LEFT JOIN `<your number>.messages` as messages ON messages.chat_id = chats.id
GROUP BY day
ORDER BY day desc

  • Conteúdo: Obtenha o número de usuários únicos que interagiram com o conteúdo do seu serviço, em ordem decrescente ordem.
SELECT faqs.question as content_name,
count(distinct chats.id) as user_count
De `<seu endereço>.messages` como mensagens
LEFT JOIN `<seu address>.chats` como bate-papos ON messages.chat_id = chats.id
LEFT JOIN `<seu endereço>.faqs` como faqs ON messages.faq_uuid = faqs.uuid
WHERE messages.direction = 'outbound'
e messages.faq_uuid não é nulo
e faqs.is_deleted = false
GROUP BY content_name
ORDER BY user_count desc

  • Contatos: obtenha os detalhes de contato mais recentes que você tem para cada um de seus usuários
selecione t.owner, t.generation, JSON_EXTRACT_SCALAR(t.fields, "$.whatsapp_profile_name") como whatsapp_profile_name, JSON_EXTRACT_SCALAR(t.fields, "$.whatsapp_id") como whatsapp_id
de(selecione chats distintos.proprietário,geração,campos, max(geração) over (partição por contact_details.contact_id) como max_generation
de `27600457382.chats` como chats
à esquerda junte-se a `27600457382.contact_details` como contact_details em chats.contact_id = contact_details.contact_id) t
onde geração = max_generação

Esse artigo foi útil?

Refinando Dados Brutos do Turn no BigQuery

Contato