使用 group by 获取类别计数,但由于数据不可用,输出 table 中缺少一个类别
Using group by to get category counts, but one category is missing in output table as data is not available
Hive 脚本问题:当计数为零时,我遇到了使用 Hive 通过 groupby 获取计数的问题。如果类别在输入 table 中可用,我能够在输出 table 中看到计数。但是当特定类别在输入 table 中不可用时,它在输出 table 中不会显示为零。相反,该类别从输出 table 中消失了。非常感谢这里的任何帮助。提前致谢。
输入和输出表:
enter image description here
输入 table 在“Year”列上进行分区。
我试过的 Hive 代码:
enter image description here
我认为你把逻辑复杂化了。要获得预期的结果,您可以 UNION ALL
三个简单的查询,如下所示:
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
的查询总是 return 某些东西,即使没有匹配 WHERE
条件的记录。
attribute | bin | (No column name)
:-------- | --: | ---------------:
ada | 96 | 3
ada | 97 | 0
ada | 98 | 5
你可以尝试使用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
Hive 脚本问题:当计数为零时,我遇到了使用 Hive 通过 groupby 获取计数的问题。如果类别在输入 table 中可用,我能够在输出 table 中看到计数。但是当特定类别在输入 table 中不可用时,它在输出 table 中不会显示为零。相反,该类别从输出 table 中消失了。非常感谢这里的任何帮助。提前致谢。
输入和输出表: enter image description here
输入 table 在“Year”列上进行分区。
我试过的 Hive 代码: enter image description here
我认为你把逻辑复杂化了。要获得预期的结果,您可以 UNION ALL
三个简单的查询,如下所示:
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
的查询总是 return 某些东西,即使没有匹配 WHERE
条件的记录。
attribute | bin | (No column name) :-------- | --: | ---------------: ada | 96 | 3 ada | 97 | 0 ada | 98 | 5
你可以尝试使用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