配置单元脚本问题:当计数为零时,使用配置单元获取groupby的计数有问题。如果输入表中有可用的类别,我就可以看到输出表中的计数。但当一个特定的类别在输入表中不可用时,它在输出表中不会显示为零。相反,这个类别从输出表中消失了。非常感谢您的帮助。提前谢谢。输入和输出tables:enter image 此处为说明输入表按“年”列进行分区。Hive代码itried:enter image 此处为说明
7gyucuyw1#
你可以试着用 select from values 语法
select from values
SELECT input_table.attribute, bins.bin, COUNT(input_table.bin) bin_count FROM (VALUES (96), (97), (98))bins (bin)left JOIN input_table ON bins.bin = input_table.bin group by bins.bin,input_table.attribute
SELECT
input_table.attribute,
bins.bin,
COUNT(input_table.bin) bin_count
FROM
(VALUES (96),
(97),
(98))bins (bin)
left JOIN input_table
ON bins.bin = input_table.bin
group by bins.bin,input_table.attribute
mzillmmw2#
我认为你把逻辑搞得太复杂了。为了得到你期望的结果,你可以 UNION ALL 三个简单的查询如下:
UNION ALL
SELECT 'ada' attribute, 96 bin, COUNT(*) FROM input_table WHERE bin = 96UNION ALL SELECT 'ada' attribute, 97 bin, COUNT(*) FROM input_table WHERE bin = 97UNION ALL SELECT 'ada' attribute, 98 bin, COUNT(*) FROM input_table WHERE bin = 98
SELECT 'ada' attribute, 96 bin, COUNT(*) FROM input_table WHERE bin = 96
UNION ALL SELECT 'ada' attribute, 97 bin, COUNT(*) FROM input_table WHERE bin = 97
UNION ALL SELECT 'ada' attribute, 98 bin, COUNT(*) FROM input_table WHERE bin = 98
这些类型的查询 GROUP BY 将始终返回某些内容,即使没有与 WHERE 条件。db小提琴演示:
GROUP BY
WHERE
attribute | bin | (No column name):-------- | --: | ---------------:ada | 96 | 3ada | 97 | 0ada | 98 | 5
attribute | bin | (No column name)
:-------- | --: | ---------------:
ada | 96 | 3
ada | 97 | 0
ada | 98 | 5
2条答案
按热度按时间7gyucuyw1#
你可以试着用
select from values
语法mzillmmw2#
我认为你把逻辑搞得太复杂了。为了得到你期望的结果,你可以
UNION ALL
三个简单的查询如下:这些类型的查询
GROUP BY
将始终返回某些内容,即使没有与WHERE
条件。db小提琴演示: