【问题标题】:Errors: The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions错误:ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效
【发布时间】:2021-08-30 16:33:20
【问题描述】:

以下是我的查询,它给了我 OrderBy 错误。我试图寻找解决方案,但它们都不起作用。请帮助我了解这里可能出了什么问题。

P.S:这是在 Salesforce Marketing Cloud 中

SELECT RIGHT(email_address, LEN(email_address) - CHARINDEX('@', email_address)) as domain,
COUNT(email_address) as domain_count
FROM   MY_DE
WHERE  LEN(email_address) > 0
GROUP BY RIGHT(email_address, LEN(email_address) - CHARINDEX('@', email_address))
ORDER BY domain_count DESC

【问题讨论】:

标签: sql salesforce-marketing-cloud


【解决方案1】:

您可以将查询包装到另一个选择语句中,然后您可以通过以下方式应用订单:

SELECT domain, domain_count
From (
   SELECT RIGHT(email_address, LEN(email_address) - CHARINDEX('@', email_address)) as domain,
   COUNT(email_address) as domain_count
   FROM   MY_DE
   WHERE  LEN(email_address) > 0
   GROUP BY RIGHT(email_address, LEN(email_address) - CHARINDEX('@', email_address))
) TableName
ORDER BY domain_count DESC

【讨论】:

  • 谢谢,但现在它给了我这个错误:保存查询字段时出错。关键字“ORDER”附近的语法不正确。
  • 我想要子查询的表名(我已经在答案中更正了 SQL)
【解决方案2】:

在 SFMC 中,有一个技巧可以让 order-by 子句发挥作用——只需添加 top 100 percent

SELECT top 100 percent
  x.domain
, x.domain_count
From (
   SELECT 
     RIGHT(email_address, LEN(email_address) - CHARINDEX('@', email_address)) as domain
   , COUNT(*) as domain_count
   FROM MY_DE
   WHERE 
   isnull(email_address,'') != ''
   GROUP BY 
   RIGHT(email_address, LEN(email_address) - CHARINDEX('@', email_address))
) x
ORDER BY x.domain_count DESC

【讨论】:

    猜你喜欢
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多