gpt4 book ai didi

SQL 选择通过至少一个公共(public)属性值与记录相交?

转载 作者:可可西里 更新时间:2023-11-01 16:15:11 26 4
gpt4 key购买 nike

我有一个包含两个字段的表:

+-----+---------+
| id | feature |
+-----+---------+
| x1 | f1 |
| x1 | f5 |
| x2 | f3 |
| x3 | f1 |
| x4 | f5 |
| x4 | f2 |
| x5 | f3 |
| x6 | f4 |
+-----+---------+

问题:

1) 如何编写 selectid 分组到具有相同 feature-s 的集合中,如下所示:S1 = {x1, x3}, S2 = {x1,x4}, S3 = {x2, x5}, S4 = {x2, x5}

2) 如何编写 select 以返回所有 id-s 至少与一个特征相交的集合?如何获得所有这些套装?在此示例中,结果应为:S5 = {x1, x3, x4} 和 S6 = {x2, x5}

3) 了解支持一些基本 SQL 子集的 Hadoop Hive 的查询格式也很棒。

最佳答案

执行第二种操作的最简单方法可能是自连接,如果数据集不是太大,这是可行的

SELECT t1.id, t2.id, collect_set( feature ) features
FROM
( SELECT id, feature FROM mytable ) t1
JOIN
( SELECT id, feature FROM mytable ) t2
ON
( t1.feature = t2.feature )
WHERE
t1.id < t2. id
GROUP BY t1.id, t2.id;

请务必包含 where 子句以将输出减半。

关于SQL 选择通过至少一个公共(public)属性值与记录相交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22990883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com