首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我收到错误"column cannot be resolved“时,我是否应该添加另一个Group By语句?

当我收到错误"column cannot be resolved“时,我是否应该添加另一个Group By语句?
EN

Stack Overflow用户
提问于 2021-02-02 12:45:15
回答 2查看 139关注 0票数 0

我的查询运行得很好,但是在添加了一个case语句之后,我在一些列上收到了一个错误。

使用case语句查询我在以下位置收到错误:

代码语言:javascript
运行
复制
select 
date_,
afs,
sum(price) as Customer_price,
sum(cost) as store_cost,
pos_vd,
product

CASE 
 WHEN f.afs='C' and  f.product  in ('Blue','Pink','Yellow') 
THEN 'Special'
ELSE 'PRODUCT GROUP NOT MAPPED' END as ProductGroup

from pie.crust f 
where 
date_ >= 201801 and 
pos_vd = 'Stop'


Group By 
date_,
afs,
pos_vd,
product,

CASE 
  WHEN f.afs='C' and  f.product  in ('Blue','Pink','Yellow') 
THEN 'Special'
ELSE 'PRODUCT GROUP NOT MAPPED' END 

下面是我收到错误的字段。当我删除字段时,查询使用case语句,但我需要在数据提取中使用该字段。我尝试在Group By下添加case语句,但它不起作用。我一直收到类似“无法接收列‘价格’”的错误:

代码语言:javascript
运行
复制
sum(price),
sum(cost)
EN

回答 2

Stack Overflow用户

发布于 2021-02-02 12:52:39

您不能在group by中指定别名。从group by中删除别名,我也不认为group by中需要聚合函数。

您应该删除以下聚合函数。

代码语言:javascript
运行
复制
sum(cnt) as CNT,
sum(amt) as AMT,
sum(price) as Customer_price,
sum(cost) as store_cost,

而且你可以在没有别名的group by中使用case..when

代码语言:javascript
运行
复制
CASE 
        WHEN f.afs='C' and  f.product  in ('Blue','Pink','Yellow') 
THEN 'Special'
ELSE 'PRODUCT GROUP NOT MAPPED' END -- no alias
票数 0
EN

Stack Overflow用户

发布于 2021-02-02 22:17:33

你好,我解决了这个问题。

这个表最初是用色调创建的,所以当我尝试在Presto中添加case语句并拉出聚合函数时,它不会工作。我返回到Hive中的原始表,并在其中添加了case语句。现在,当我从Presto中提取数据时,一切都正常。

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

https://stackoverflow.com/questions/66003784

复制
相关文章

相似问题

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