设置:数据存储在hadoop上,并在Impala中进行查询。
我正在尝试创建一个查询,以使我能够细分我们从客户那里看到的交付情况(它们的交付情况是给定时间段内我们在数据库中看到的所有行的计数。为此,我需要排除一行中有两次重复计数的位置,因此,我们只计算1。]
在这种情况下,重复计数是2列具有完全相同的行数据。
示例:在下表中,我应该能够运行查询,因此我从“ C4”的计数中删除了第1行,因为前2行与2列匹配。
TABLE = table c1 = string c2 = bigint C1 || C2 || C3 || C4 -------------------------- a || 1 || a || 1 a || 1 || a || 1 a || 2 || b || 1 a || 3 || a || 1 a || 4 || b || 1 b || 2 || c || 1 c || 1 || d || 1 c || 2 || d || 1
返回所有行的当前查询:
SELECT c1, c3, count(c4) AS 'delivery' FROM table WHERE c1 = 'a' GROUP BY c1, c3
根据我在网上检查的内容,我需要创建一个子查询来识别这些行,但是运气不好,我没有遇到任何麻烦,我进入了兔子洞,在这里我尝试创建一个新行,将两列合并下方:
SELECT UNIQUE = c2 + cast(c1 as BIGINT) FROM table WHERE month = month(now())
然后,我将从这个新行中回顾唯一的行,但是我敢肯定,可能有一种类似的方法可以达到我想要的结果。
从上表示例中,我希望看到以下结果:
c1 c3 delivery a a 2 a b 1
感谢您提供的任何建议。
设置:数据存储在hadoop上,并在Impala中进行查询。我正在尝试创建一个查询,使我能够详细了解我们从客户那里看到的交货情况(它们的交货量是...
我认为您需要窗口功能。对于唯一行: