首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要通过错误解析组(ORA-00979:不是按表达式分组)

需要通过错误解析组(ORA-00979:不是按表达式分组)
EN

Stack Overflow用户
提问于 2015-10-12 12:03:43
回答 1查看 192关注 0票数 0

以下是我的疑问:

代码语言:javascript
复制
  select 
    A.school_dim_id,
    A.platform_dim_id,
    A.month_dim_id,
    CASE WHEN B.SCHOOLTYPE NOT IN ('International') THEN B.ROLLSIZE
    WHEN B.SCHOOLTYPE IN ('International') THEN MAX(D.ROLE_SIZE)
    END ROLL_SIZE
  from  
      rag_raw_event_detail_fact A inner join rag_school_dim B on (A.school_dim_id = B.school_dim_id)
      inner join rag_subscription_detail_fact C on (A.school_dim_id = C.school_dim_id)
      inner join rag_intl_school_roll_static D on (D.isbn = c.isbn)
      inner join rag_platform_dim E on (E.platform_dim_id = A.platform_dim_id)
  where 
      E.PLATFORM_EVENT = 'alp_wordsmith_resources_opened'
      and C.service in ('PriHubsWordsmith','PriHubsWordsmithGlobal')
      and C.enddate > sysdate
  group by
      A.school_dim_id,
      A.platform_dim_id,
      A.month_dim_id

在运行上面的SQL时,我得到了如下所述的错误:

ORA-00979:不是按表达式分组 00979。00000 -“非一组表达” *原因:*行动: 行处的错误:5列: 13

我需要帮助来克服上面的错误。

EN

回答 1

Stack Overflow用户

发布于 2015-10-12 13:06:15

必须将SELECT中的所有列按节放在group函数中。因此,将是:

代码语言:javascript
复制
select 
    A.school_dim_id,
    A.platform_dim_id,
    A.month_dim_id,
    CASE WHEN B.SCHOOLTYPE NOT IN ('International') THEN B.ROLLSIZE
    WHEN B.SCHOOLTYPE IN ('International') THEN MAX(D.ROLE_SIZE)
    END ROLL_SIZE
  from  
      rag_raw_event_detail_fact A inner join rag_school_dim B on (A.school_dim_id = B.school_dim_id)
      inner join rag_subscription_detail_fact C on (A.school_dim_id = C.school_dim_id)
      inner join rag_intl_school_roll_static D on (D.isbn = c.isbn)
      inner join rag_platform_dim E on (E.platform_dim_id = A.platform_dim_id)
  where 
      E.PLATFORM_EVENT = 'alp_wordsmith_resources_opened'
      and C.service in ('PriHubsWordsmith','PriHubsWordsmithGlobal')
      and C.enddate > sysdate
  group by
      A.school_dim_id,
      A.platform_dim_id,
      A.month_dim_id,
      B.SCHOOLTYPE,
      B.ROLLSIZE

但在那之后,你可能不会得到预期的结果。在这种情况下,您将不得不重写查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33080663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档