Você está aqui:
Regras SQL para Insights
Quando você escreve SQL para insights calculados ou de streaming no Data 360, as regras regem como cada cláusula é interpretada e quais restrições se aplicam. Você também pode integrar uma subconsulta aninhada a uma cláusula WHERE ou JOIN para restringir quais linhas a consulta externa retorna.
Edições obrigatórias
| Disponível em: Todas as edições suportadas pelo Data 360. Consulte Disponibilidade da edição do Data 360. |
Consultar regras por cláusula
| Cláusula | Regra |
|---|---|
| Geral | Os nomes de DMO diferenciam maiúsculas de minúsculas. Verifique se as referências de DMO em seu SQL correspondem ao maiúsculas e minúsculas mostrado na coluna Nome da API do objeto na guia Modelo de dados. |
| Uma consulta deve conter pelo menos uma medida. Uma medida é qualquer campo agrupado em uma função de agregação. | |
| Qualquer atributo na cláusula SELECT que não esteja dentro de uma função de agregação é tratado como uma dimensão e deve aparecer na cláusula GROUP BY. | |
| Não é possível agregar dentro de uma agregação. | |
| Não é possível usar DISTINCT em uma consulta de nível superior. | |
Você pode usar comentários multilinha (/* */). |
|
SELECT |
O alias de uma dimensão não pode corresponder ao nome original do campo. Por exemplo, UnifiedIndividual__dlm.Id__c as customer_id__c é válido, mas UnifiedIndividual__dlm.Id__c as Id__c causa erro. |
Você deve usar TRY_CONVERT_CURRENCY na cláusula SELECT quando sua percepção incluir um campo de moeda. |
|
WHERE |
A cláusula WHERE não pode conter uma expressão agregada. |
| A cláusula WHERE não pode fazer referência a um alias de dimensão ou medida. | |
GROUP BY |
A cláusula GROUP BY deve ser uma expressão não agregada que use aliases. |
| A cláusula GROUP BY pode fazer referência a um alias de dimensão, mas o alias não pode fazer parte de uma expressão. | |
| A cláusula GROUP BY não pode incluir um alias de medida ou uma função agregada. | |
ORDER BY |
ORDER BY não é permitido em uma instrução SELECT de nível superior. |
RANK |
PARTION BY e ORDER BY dentro de uma função RANK podem ser expressões agregadas ou não agregadas. |
| Uma cláusula RANK que contém uma expressão agregada é tratada como uma medida. | |
| As medidas produzidas pela RANK não são agregáveis. Você deve fornecer todas as dimensões definidas ao consultá-las. | |
CASE |
Uma expressão CASE que contém uma função agregada é tratada como uma medida. |
As medidas produzidas pela CASE(WHEN <aggregate>) não são agregáveis. Você deve fornecer todas as dimensões definidas ao consultá-las. |
|
Para comparar os resultados de funções agregadas, use uma instrução CASE WHEN. A comparação booleana não oferece suporte a funções agregadas. Por exemplo, em vez de WHEN SUM(amount) > 100, use CASE WHEN SUM(amount) >
100 THEN ... END. |
|
| Campos de data | Ao filtrar uma string vazia em um campo de data, use um valor nulo. |
Subconsultas aninhadas
Uma subconsulta é uma consulta integrada dentro de outra consulta, geralmente em uma cláusula WHERE ou JOIN. Use uma subconsulta para retornar dados que restrinjam quais linhas a consulta externa recupera.
Por exemplo, essa consulta calcula a média dos totais do pedido de vendas para clientes nascidos após 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;Este artigo resolveu seu problema?
Diga-nos para podermos melhorar!
