【问题标题】:Teradata: Selected non-aggregate values must be part of the associated group on.... i'm selecting all non aggregate fieldsTeradata:选定的非聚合值必须是相关组的一部分......我正在选择所有非聚合字段
【发布时间】:2020-05-14 10:38:47
【问题描述】:

这快把我逼疯了。有人可以帮我弄清楚为什么我不断收到“非聚合值必须是关联组的一部分”错误吗?这真的没有意义。我不能对窗口函数进行分组,因此只有两个非聚合的选定字段是前两个。内部查询完全没问题,错误只是在我运行整个过程时发生。我还尝试使用实际的字段名称与数字顺序,我得到了同样的错误,就好像我应该按其他东西分组一样。

select
end_of_week, 
deal_id, 
sum(sum_nob) as sum_nob, 
ROW_NUMBER() OVER(ORDER BY sum_nob desc) AS row_num
from ( 
    select
    td_week_end (report_date) as end_of_week, 
    report_date, 
    deal_id, 
    sum (nob) as sum_nob
    from sandbox.rev_mgmt_deal_funnel df
    left join (
        select 
        deal_uuid  
        from sandbox.sup_analytics_deal_counts_final) s on df.deal_id = s.deal_uuid 

    where s.deal_uuid is null
    and grt_l3 = 'L3 - High End'
    and report_date >= '2019-10-01'
    group by end_of_week, 
    report_date, 
    deal_id) a
group by 1,2

【问题讨论】:

  • 您可以在 Teradata 中使用别名列名,但解析器仅在没有匹配的列名时检查别名 lst。在您的情况下,sum(sum_nob) as sum_nob 添加了一个别名,但它与基列同名,因此 ROW_NUMBER() OVER(ORDER BY sum_nob desc) 与基列匹配。两个答案都显示了修复,您也可以应用不同的别名。当然,Gordon 是对的,您当前的查询过于复杂

标签: sql teradata aggregate-functions


【解决方案1】:

您的查询似乎比必要的复杂得多:

select td_week_end(report_date) as end_of_week, 
       deal_id, 
       sum(nob) as sum_nob,
       row_number() over (order by sum(nob)) as row_num
from sandbox.rev_mgmt_deal_funnel df left join
     sandbox.sup_analytics_deal_counts_final s
     on df.deal_id = s.deal_uuid 
where s.deal_uuid is null and
      grt_l3 = 'L3 - High End' and
      report_date >= '2019-10-01'
group by 1, 2;

注意事项:

  • 不需要子查询。
  • 无需聚合两次。
  • left join 的子查询是不必要的。

【讨论】:

    【解决方案2】:

    问题在于ROW_NUMBER(),其分区子句包含非聚合列 (sum_nob)。

    我认为你想要:

    ROW_NUMBER() OVER(ORDER BY SUM(sum_nob) DESC) AS row_num
    

    这将为您提供基于 sum_nob 的总和的记录排名。

    【讨论】:

      猜你喜欢
      • 2013-06-27
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 2018-07-15
      • 2015-10-05
      • 2018-10-18
      相关资源
      最近更新 更多