concat,然后在配置单元中按分组

yqlxgs2m  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(383)

我在一个表中有3列,如下所示:

|---------------------|------------------|-------------|
|      dept           |     class        |    item     |
|---------------------|------------------|-------------|
|          234        |         34       |      6783   |
|---------------------|------------------|-------------|
|          784        |         78       |      2346   |
|---------------------|------------------|-------------|

当我连接3列并创建一列作为“item\u no”(值234-34-6783)时,当我在groupby函数中使用新列item\u no时,它会抛出一个错误-“invalid table alias or column reference”有人能帮我吗?

select dept, class, item, concat(dept, '-', class, '-', item) as item_no, sum(sales)
from sales_table
group by dept, class, item, item_no;

列数据类型为smallint

e4yzc0pl

e4yzc0pl1#

这里有两种方法:

select concat(dept, '-', class, '-', item) as item_no, count(*)
from t
group by concat(dept, '-', class, '-', item) ;

或:

select concat(dept, '-', class, '-', item) as item_no, count(*)
from t
group by dept, class, item ;

也就是说,我以为hive支持 group by ,所以这也应该起作用:

select concat(dept, '-', class, '-', item) as item_no, count(*)
from t
group by item_no ;

如果 item_no 不过,它们是表中的一列。位置符号也适用:

select concat(dept, '-', class, '-', item) as item_no, count(*)
from t
group by 1 ;

相关问题