Consultas de ejemplo para sus datos

Neelke Stadler Actualizado por Neelke Stadler

Es increíble lo que aprendes sobre tus usuarios al observar tus datos.

Tus datos de WhatsApp se pueden utilizar para comprender a tus usuarios y su comportamiento y, en última instancia, mejorar tu servicio, tanto en línea como fuera de línea. El análisis que puede hacer es infinito, pero compartimos un par de consultas de ejemplo para ayudarlo a comenzar.

Encontrará excelentes recursos en línea y muchas de sus preguntas sobre cómo escribir consultas específicas para responder algunas de sus preguntas candentes probablemente ya hayan sido respondidas por comunidades en línea como Stack Overflow. Un excelente punto de partida es la documentación de SQL estándar de BigQuery, específicamente la sección Funciones y operadores.

Algunos consejos

  • Cree un nuevo conjunto de datos en BigQuery, p. llamado Informes y guarde el resultado de la consulta importante que le gustaría visualizar en una tabla dedicada en su nuevo conjunto de datos.
  • De esta manera, es fácil visualizar el resultado (por ejemplo, recuentos diarios) en Data Studio usando BigQuery y seleccionando el conjunto de datos y la tabla específicos como fuente de datos.
  • BigQuery le permite programar una actualización de consulta para asegurarse de tener datos actualizados para su panel.

Ejemplo Consultas

  • Usuarios únicos: cuente el número de usuarios únicos que han interactuado con su servicio desde el inicio:
seleccione recuento (ID distinto) de `<su número>.chats`
  • Detalles del chat: Obtenga los detalles de chat más recientes de un usuario sin duplicación:
select t.* 
from(
select *,
RANK() OVER(PARTITION BY id ORDER BY actualizado_at DESC) as ranking
from `<your number>.chats`
)t
WHERE rango = 1
  • Recuentos diarios: Obtenga los recuentos diarios de usuarios activos (divididos entre nuevos y recurrentes) y el total de mensajes (dividido entre enviado y recibido)
SELECT date(messages.inserted_at) COMO día,
count(distinct chats.owner) as Daily_Active_Users,
count(distinct IF(date(chats.inserted_at) = date(messages.inserted_at), chats.owner, NULL)) como Usuarios_nuevos_diarios,
count(distinct IF(date(chats.inserted_at) <> date(messages.inserted_at), chats.owner, NULL)) como Usuarios_que_retornan_diarios,
count(messages.id) distintos como Mensajes_totales_diarios,
count(distinct IF(messages.direction='entrante', messages.id, NULL)) como Mensajes_recibidos_diarios,
count(distinct IF(messages.direction='saliente', messages.id, NULL)) como Daily_Sent_Messages,
count(distinct messages.id)/count(distinct chats.owner) como Messages_per_User
FROM `<tu número>.chats` como chats
LEFT JOIN `<tu número>.messages` como mensajes ON mensajes.chat_id = chats.id
GRUPO POR día
ORDENAR POR día desc

  • Contenido: Obtenga el número de usuarios únicos que interactuaron con el contenido de su servicio, en orden descendente orden.
SELECT faqs.question como content_name,
count(distinct chats.id) como user_count
De `<tu dirección>.messages` como mensajes
LEFT JOIN `<tu dirección>.chats` como chats EN mensajes.chat_id = chats.id
LEFT JOIN `<tu dirección>.faqs` como preguntas frecuentes EN mensajes.faq_uuid = faqs.uuid
DONDE mensajes.dirección = 'saliente'
y mensajes.faq_uuid no es null
and faqs.is_deleted = false
GROUP BY content_name
ORDER BY user_count desc

  • Contactos: Obtenga los últimos detalles de contacto que tiene para cada uno de sus usuarios
select 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
from(seleccione distintos chats.propietario,generación,campos, max(generación) sobre (partición por contact_details.contact_id) como max_generación
from `27600457382.chats` como chats
unirse a la izquierda `27600457382.contact_details` como detalles_de_contacto en chats.contact_id = detalles_contacto.contact_id) t
donde generación = max_generación

¿Cómo lo hicimos?

Refinar datos de turnos sin procesar en BigQuery

Contacto