Skip to main content
Join the Agentforce Virtual Hackathon to build innovative solutions and compete for a $50k Grand Prize. Sign up now. Terms apply.

Revisar ejemplos de SQL

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Reconocer las funciones de una declaración SQL.
  • Incluir un intervalo de tiempo en una declaración SQL de perspectivas de transmisión.
  • Encontrar recursos que lo ayuden a crear SQL.

Perspectivas de transmisión en Data Cloud

La mejor manera de aprender a crear perspectivas con SQL es revisar instrucciones de ejemplo. Una vez que pueda identificar qué hace cada sección de una declaración SQL, podrá reconocer los patrones que se pueden utilizar para crear sus propias instrucciones. Antes de pasar a los ejemplos, es importante saber que hay dos tipos de perspectivas: calculadas y de transmisión. Las perspectivas calculadas se utilizan para consultar y crear cálculos complejos basados en datos almacenados, mientras que las perspectivas calculadas son consultas basadas en datos en tiempo real.

Gracias a las perspectivas de transmisión, podrá hacer lo siguiente:

  • Generar analíticas de series temporales sobre datos que se mueven constantemente.
  • Encontrar patrones útiles y compartir las perspectivas con otras aplicaciones mediante acciones sobre datos.
  • Crear con el generador de perspectivas y SQL.
  • Usar con API de Java Database Connectivity (JDBC) y herramientas de visualización, como Tableau.

Ejemplos de SQL de perspectivas calculadas

Empecemos con algunos ejemplos de perspectivas calculadas. En el primero se calculan los datos de implicación de email encontrados en Marketing Cloud y se agrupan con datos de perfil de individuo unificado.

SELECT COUNT( EmailEngagement__dlm.Id__c) as email_open_count__c,
UnifiedIndividual__dlm.Id__c as customer_id__c
FROM
EmailEngagement__dlm
JOIN
IndividualIdentityLink__dlm
ON
IndividualIdentityLink__dlm.SourceRecordId__c = EmailEngagement__dlm.IndividualId__c

and IFNULL(IndividualIdentityLink__dlm.KQ_SourceRecordId__c, ‘’) = IFNULL(EmailEngagement__dlm.KQ_IndividualId__c, ‘’)
and EmailEngagement__dlm.EngagementChannelActionId__c ='Open'
JOIN
UnifiedIndividual__dlm
ON
UnifiedIndividual__dlm.Id__c = IndividualIdentityLink__dlm.UnifiedRecordId__c
GROUPBY
customer_id__c

Hagamos un desglose de cada sección de esta declaración SQL.

Sección 1

SELECT COUNT( EmailEngagement__dlm.Id__c) as email_open_count__c,
UnifiedIndividual__dlm.Id__c as customer_id__c

Lo que hace: calcula el conteo de emails que se abrieron según los individuos unificados, también denominados Id. de cliente.

Sección 2

FROM
EmailEngagement__dlm

Lo que hace: encuentra esta información en el DMO de implicación de email.

Sección 3

JOIN
IndividualIdentityLink__dlm
ON
IndividualIdentityLink__dlm.SourceRecordId__c = EmailEngagement__dlm.IndividualId__c
and IFNULL(IndividualIdentityLink__dlm.KQ_SourceRecordId__c, ‘’) = IFNULL(EmailEngagement__dlm.KQ_IndividualId__c, ‘’)
and EmailEngagement__dlm.EngagementChannelActionId__c ='Open'
JOIN
UnifiedIndividual__dlm
ON
UnifiedIndividual__dlm. Id__c = IndividualIdentityLink__dlm.UnifiedRecordId__c

Lo que hace: en este paso, conecta el DMO de implicación de email con el DMO de vínculo de la identidad del individuo. Conéctelos mediante las claves externas de la Id. de registro de origen y la Id. de individuo y los atributos del calificador de clave correspondientes, y únalos basándose en implicaciones de email que equivalgan a emails abiertos. Además, conecte estos datos con el DMO de individuo unificado basándose en la Id. y en la Id. de registro unificado.

Sección 4

GROUPBY
customer_id__c

Lo que hace: agrupa esta información conforme a la Id. de cliente.

Antes de continuar, cabe destacar algo más sobre el ejemplo anterior. La manera en la que el objeto UnifiedIndividual se relaciona con un objeto de implicación (como EmailEngagement) es a través de un objeto de conexión (como el vínculo Identidad del individuo), que contiene la asignación de la Id. de individuo unificado y la Id. de individuo.

A continuación, veamos otro ejemplo de SQL con la función de clasificación. En esta instrucción se calcula el gasto del cliente que, luego, se usa para clasificar a los clientes según el gasto de todos los individuos unificados.

SELECT
UnifiedIndividual__dlm.ssot__Id__c AS customer_id__c,
RANK() OVER (ORDER BY SUM(ssot__SalesOrder__dlm.ssot__GrandTotalAmount__c) ) AS customer_rank_based_on_spend__c,

SUM(ssot__SalesOrder__dlm.ssot__GrandTotalAmount__c) AS customer_spend__c
FROM
ssot__SalesOrder__dlm
JOIN
IndividualIdentityLink__dlm
ON (ssot__SalesOrder__dlm.ssot__SoldToCustomerId__c = IndividualIdentityLink__dlm.SourceRecordId__c)
AND IFNULL(ssot__SalesOrder__dlm.KQ_SoldToCustomerId__c, ‘’) = IFNULL(IndividualIdentityLink__dlm.KQ_SourceRecordId__c, ‘’)
LEFT OUTER JOIN UnifiedIndividual__dlm
ON (IndividualIdentityLink__dlm.UnifiedRecordId__c = UnifiedIndividual__dlm.ssot__Id__c)
GROUP BY customer_id__c
HAVING RANK() OVER (ORDER BY SUM(ssot__SalesOrder__dlm.ssot__GrandTotalAmount__c) ) < 1000

Desglosemos un poco más esta instrucción.

Sección 1

SELECT
UnifiedIndividual__dlm.ssot__Id__c AS customer_id__c,
RANK() OVER (ORDER BY SUM(ssot__SalesOrder__dlm.ssot__GrandTotalAmount__c) ) AS customer_rank_based_on_spend__c,
SUM(ssot__SalesOrder__dlm.ssot__GrandTotalAmount__c) AS customer_spend__c

Lo que hace: entre todos los individuos unificados, clasifica a cada cliente conforme a su gasto total.

Sección 2

FROM
ssot__SalesOrder__dlm

Lo que hace: busca esta información en el DMO de pedido de ventas.

Sección 3

JOIN
IndividualIdentityLink__dlm
ON (ssot__SalesOrder__dlm.ssot__SoldToCustomerId__c = IndividualIdentityLink__dlm.SourceRecordId__c)
AND IFNULL(ssot__SalesOrder__dlm.KQ_SoldToCustomerId__c, ‘’) = IFNULL(IndividualIdentityLink__dlm.KQ_SourceRecordId__c, ‘’)
LEFT OUTER JOIN UnifiedIndividual__dlm
ON (IndividualIdentityLink__dlm.UnifiedRecordId__c = UnifiedIndividual__dlm.ssot__Id__c)

Lo que hace: une datos del DMO de pedidos de ventas con el DMO de vínculo de identidad de individuo según la Id. de cliente y la Id. de individuo, y sus respectivos atributos de calificador de clave. Une con algunos datos coincidentes en el DMO de individuo unificado según la Id. y la Id. de registro unificado.

Sección 4

GROUP BY customer_id__c

Lo que hace: agrupa esta información conforme a la Id. de cliente.

Sección 5

HAVING RANK() OVER (ORDER BY SUM(ssot__SalesOrder__dlm.ssot__GrandTotalAmount__c) ) < 1000

Lo que hace: incluye menos de 1000 clientes según su importe de gasto total.

Perspectivas de transmisión

Ahora que vimos algunos ejemplos de perspectivas calculadas, pasemos a crear SQL para perspectivas de transmisión. Crear una perspectiva de transmisión con SQL es similar a crear una perspectiva calculada, excepto por que necesitará considerar una ventana de tiempo.

Ejemplo de SQL de perspectivas de transmisión

Veamos un ejemplo en el que se muestren vistas de página dentro de un intervalo de tiempo de 5 minutos.

SELECT COUNT( RealTimeMobileEvents__dlm.pageviews__c ) as page_views__c,
ssot__Individual__dlm.ssot__Id__c as customer_id__c,
ssot__Individual__dlm.KQ_Id__c as kq_customer_id__c,
RealTimeMobileEvents__dlm.product__c as product__c,
WINDOW.START as start__c,
WINDOW.END as end__c
FROM
RealTimeMobileEvents__dlm
JOIN
 ssot__Individual__dlm
ON
ssot__Individual__dlm.ssot__Id__c = RealTimeMobileEvents__dlm.deviceId__c
AND IFNULL(ssot__Individual__dlm.KQ_Id__c, ‘’) = IFNULL(RealTimeMobileEvents__dlm.KQ_deviceId__c, ‘’)
GROUP BY
window( RealTimeMobileEvents__dlm.dateTime__c ,'5 MINUTE'),
Customer_id__c, kq_customer_id__c

La diferencia perceptible en esta declaración SQL de las perspectivas calculadas son los comandos WINDOW. Estos definen de qué manera se agrupan los resultados; en este ejemplo, en un período de 5 minutos.

WINDOW.START as start__c,
WINDOW.END as end__c
GROUP BY
window( RealTimeMobileEvents__dlm.dateTime__c ,'5 MINUTE'),

Y este es un ejemplo de resultado de esta expresión.

START_C

END_C

CUSTOMER_ID_C

PRODUCT_C

PAGE_VIEWS_C

12

12.05

1

HK0012

1

12.05

12.1

2

JK0078

2

12.1

12.15

3

HK0078

1

Veamos otro ejemplo.

SELECT
SUM(
MobileApp_RT_Events__dlm.productPurchaseWeb_orderQuanity__c
) as order_placed__c,
MobileApp_RT_Events__dlm.AddToCartWeb_productId__c as product__c,
WINDOW.START as start__c,
WINDOW.ENDas end__c
FROM
MobileApp_RT_Events__dlm
GROUPBY
window(
MobileApp_RT_Events__dlm.dateTime__c,
'5 MINUTE'
),
MobileApp_RT_Events__dlm.AddToCartWeb_productId__c

Hagamos un desglose de cada sección de esta instrucción.

Sección 1

SELECT
SUM(
MobileApp_RT_Events__dlm.productPurchaseWeb_orderQuanity__c
) as order_placed__c,
MobileApp_RT_Events__dlm.AddToCartWeb_productId__c as product__c,
WINDOW.START as start__c,
WINDOW.END as end__c

Lo que hace: encuentra el total de los pedidos realizados a partir de la fuente de transmisión de eventos MobileApp entre una hora de inicio y de finalización.

Sección 2


FROM
MobileApp_RT_Events__dlm

Lo que hace: usa la fuente de transmisión de eventos MobileApp.

Sección 3

GROUPBY
window(
MobileApp_RT_Events__dlm.dateTime__c,
'5 MINUTE'
),
MobileApp_RT_Events__dlm.AddToCartWeb_productId__c

Lo que hace: agrupa los resultados en agregaciones de 5 minutos conforme a la Id. de producto e incluye información sobre: cantidad de pedidos realizados, producto, hora de inicio y finalización identificadas.

Crear sus instrucciones

Ahora que conoce los conceptos básicos y algunos ejemplos, explore las diversas opciones que tiene cuando crea sus perspectivas. Existen muchas más funciones que puede agregar a sus instrucciones SQL para mejorar aún más los resultados.

Por último, puede visitar la página de ayuda de perspectivas de Data Cloud para descubrir cómo crear perspectivas calculadas. Con eso, ya tiene las herramientas para desbloquear el poder de una consulta SQL en Data Cloud.

Recursos

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios