Loading
关于 Salesforce Data 360
见解的 SQL 规则

见解的 SQL 规则

Data 360 中为计算或流见解编写 SQL 时,规则会控制如何解释每个子句以及应用哪些约束。您也可以在 WHERE 或 JOIN 子句中嵌入嵌套子查询,以限制外部查询返回哪些行。

所需的 Edition

适用于:Data 360 支持的所有版本。请参阅 Data 360 版本可用性

按条款查询规则

条款 规则
常规 DMO 名称区分大小写。验证 SQL 中的 DMO 引用是否匹配“数据模型”选项卡上“对象 API 名称”列中显示的大小写。
查询必须包含至少一个评测。评测是封装在聚合函数中的任何字段。
SELECT 子句中任何不在聚合函数中的属性都被视为维度,必须出现在 GROUP BY 子句中。
您不能在聚合中聚合。
您无法在顶级查询中使用 DISTINCT。
您可以使用多行评论 (/* */)。
SELECT 维度的别名不匹配字段的原始名称。例如,UnifiedIndividual__dlm.Id__c as customer_id__c 有效,但 UnifiedIndividual__dlm.Id__c as Id__c 会导致错误。
当您的见解包含币种字段时,您必须在 SELECT 子句中使用TRY_CONVERT_CURRENCY
WHERE WHERE 子句不能包含聚合表达式。
WHERE 子句不能引用维度或评测别名。
GROUP BY GROUP BY 子句必须是使用非别名的非聚合表达式。
GROUP BY 子句可以引用维度别名,但该别名不能是表达式的一部分。
GROUP BY 子句不能包括评测别名或聚合函数。
ORDER BY 顶级 SELECT 语句中不允许 ORDER BY。
RANK RANK 函数中的 PARTITION BY 和 ORDER BY 可以是聚合表达式,也可以是非聚合表达式。
包含聚合表达式的 RANK 子句被视为评测。
RANK 生成的评测不可聚合,您必须在查询时提供所有定义的维度。
CASE 包含聚合函数的 CASE 表达式被视为评测。
CASE(WHEN <aggregate>)生成的评测不可聚合 — 您必须在查询时提供所有定义的维度。
日期字段 在日期字段中筛选空字符串时,改用空值。

嵌套子查询

子查询是嵌入到另一个查询中的查询,通常在 WHERE 或 JOIN 子句中。使用子查询返回限制外部查询检索哪些行的数据。

例如,此查询平均计算 1980 年以后出生的客户的销售订单总数。

SELECT
  avg(SalesOrder__dlm.GrandTotalAmount__c) as avg__c,
  SubQuery1.Id as customer_id__c
FROM SalesOrder__dlm
JOIN (
  SELECT Individual__dlm.Id__c as Id
  FROM Individual__dlm
  WHERE year(Individual__dlm.BirthDate__c) > 1980
) as SubQuery1
ON SalesOrder__dlm.SoldToCustomerId__c = SubQuery1.Id
GROUP BY customer_id__c;
 
正在加载
Salesforce Help | Article