【发布时间】:2017-03-19 13:34:30
【问题描述】:
工作(id,等级)
数据:
work
------------------
1 | A
1 | B
1 | C
1 | D
2 | A
2 | C
2 | B
3 | C
我需要找到所有具有共同排名的 id 对,并且仅当排名计数大于 2 时才应显示并按降序打印它们。我为此编写了一个 mysql 查询,但是我是 SparkSQL 和 HIVEQL 的新手。所以请帮助我如何做到这一点。 例如使用上面的数据结果集应该是:
mysql查询是:
select a.id,b.id
from work as a, work as b
where a.id>b.id
group by a.id,b.id having group_concat(distinct a.rank order by a.rank)=group_concat(distinct b.rank order by b.rank)
---------------------
id1 | id2 | Count
---------------------
A | B | 3
B | C | 3
【问题讨论】:
-
rank是如何定义的?
标签: sql apache-spark hive apache-spark-sql hiveql