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 el periodo de tiempo en una declaración de SQL de perspectivas de transmisión.
  • Encontrar recursos para ayudarle a crear lenguaje SQL.

Perspectivas de transmisión en Data Cloud

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

Con las perspectivas de transmisión puede hacer lo siguiente:

  • Generar análisis de series temporales sobre datos que están en constante movimiento.
  • Encontrar patrones útiles y compartir las perspectivas con otras aplicaciones mediante acciones de datos.
  • Crear con el generador de perspectivas y SQL.
  • Utilizarlas con la API Java Database Connectivity (JDBC) y herramientas de visualización, como Tableau.

Ejemplos de SQL de perspectivas calculadas

Vamos a empezar con algunos ejemplos de perspectivas calculadas. La primera calcula los datos de implicación del correo electrónico encontrados en Marketing Cloud y los agrupa con los datos del perfil individual 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

Vamos a desglosar 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

Qué hace: Calcula la cantidad de correos electrónicos abiertos según los perfiles individuales unificados, también llamados Id. del cliente.

Sección 2

FROM
EmailEngagement__dlm

Qué hace: Localiza la información en el DMO de implicación del correo electrónico.

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

Qué hace: En este paso, conecta el DMO de implicación del correo electrónico con el DMO de vínculo de identidad individual. Se conectan utilizando claves externas del Id. de registro individual y del Id. de perfil individual y los respectivos atributos calificadores clave, y se realizan uniones según la implicación en el correo electrónico, es decir, las veces que se abrió el correo. También se conectan los datos con el DMO de perfil individual unificado basados en el Id. y en el Id. de registro unificado.

Sección 4

GROUPBY
customer_id__c

Qué hace: agrupa esta información basándose en el Id. de cliente.

Antes de continuar, hay algo más que debe observar en el ejemplo anterior. La manera en la que el objeto UnifiedIndividual está relacionado a un objeto de implicación (como EmailEngagement) es mediante un objeto de conexión (como el vínculo de identidad individual), que contiene la asignación del Id. individual unificado y el Id. individual.

A continuación, vamos a ver otro ejemplo de SQL que utiliza una función de clasificación. Esta declaración calcula los gastos del cliente y utiliza esa información para clasificar a los clientes según sus gastos en todos los perfiles individuales 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

Vamos a desglosar esta declaració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

Qué hace: en todos los perfiles individuales unificados, clasifique a cada cliente según el gasto total.

Sección 2

FROM
ssot__SalesOrder__dlm

Qué hace: busca esta información en el DMO de pedido de venta.

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)

Qué hace: une datos del DMO del pedido de venta y del DMO de vínculo de identidad individual del Id. de cliente y del Id. individual y sus respectivos atributos de calificador clave. Realiza la unión con datos coincidentes en el DMO de perfil individual unificado según el Id. de registro unificado y el Id.

Sección 4

GROUP BY customer_id__c

Qué hace: agrupa esta información basándose en el Id. de cliente.

Sección 5

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

Qué hace: incluye menos de 1000 clientes según el total gastado.

Perspectivas de transmisión

Ahora que ya hemos revisado algunos ejemplos de perspectivas calculadas, vamos a empezar a crear lenguaje SQL para perspectivas de transmisión. La creación de perspectivas de transmisión con SQL es parecida a la creación de perspectivas calculadas, salvo que necesita tener en cuenta un periodo de tiempo.

Ejemplo de SQL de perspectivas de transmisión

Vamos a ver un ejemplo que muestra las visualizaciones de una página en un periodo 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 más notable en la declaración SQL en cuanto a las perspectivas calculadas es el comando WINDOW. Este define la manera en que se agrupan sus resultados (en este ejemplo, en 5 minutos).

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

Hay un resultado de ejemplo en 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

Vamos a ver 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

Vamos a desglosar cada sección de esta declaració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

Qué hace: encuentra el total de los pedidos realizados según la fuente de transmisión de eventos MobileApp entre una hora de inicio y de fin.

Sección 2


FROM
MobileApp_RT_Events__dlm

Qué hace: utiliza 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

Qué hace: agrupa los resultados en agregaciones de 5 minutos según el Id. de producto e incluye información sobre lo siguiente: cantidad de pedidos realizados, producto, hora de inicio y de fin identificadas.

Crear sus declaraciones

Ahora que ya conoce los conceptos básicos y algunos ejemplos, explore varias opciones de las que dispone a la hora de crear sus perspectivas. Existen muchas más funciones que puede agregar a sus declaraciones SQL para ajustar más sus resultados.

Por último, puede visitar la página de ayuda de perspectivas de Data Cloud para obtener más información sobre la creación de perspectivas calculadas. Con todo esto, ya está listo para desbloquear el poder de una consulta SQL en Data Cloud.

Recursos

Comparta sus comentarios sobre Trailhead en la Ayuda de Salesforce.

Nos encantaría conocer su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios cuando quiera desde el sitio de la Ayuda de Salesforce.

Más información Continuar para compartir comentarios