gpt4 book ai didi

mysql - 从桥接表中获取组 key

转载 作者:行者123 更新时间:2023-11-29 01:01:17 25 4
gpt4 key购买 nike

我正在开发一个 ETL 过程,需要一个桥接表来实现事实表和维度表(MySQL 数据库)之间的一对多关系。组合的数量有限(几千个),所以我想重新使用桥接表中的组键来限制大小。

属于事实行的任何维度组都将包含多个维度键(1 到 15 左右),分配给唯一的组键,如下所示:

group_key | dimension_key
-----------------------
1 | 1
1 | 3
1 | 4
2 | 1
2 | 2
2 | 3
3 | 1
3 | 4

如何检索维度 1、3、4(即 1)的唯一组 key ?

最佳答案

我认为您要求的查询返回组,这样特定列表中的所有 维度都与该组相关联。也就是说,必须存在将该组映射到每个维度的行,并且您想知道哪些组满足这一点。

SELECT f1.group_key
FROM facts f1
JOIN facts f2 ON (f1.group_key = f2.group_key)
JOIN facts f2 ON (f1.group_key = f2.group_key)
WHERE f1.dimension_key = 1
AND f2.dimension_key = 3
AND f3.dimension_key = 4;

另一种解决方案是计算组中的匹配行数:

SELECT f.group_key
FROM facts f
WHERE f.dimension_key IN (1,3,4)
GROUP BY f.group_key
HAVING COUNT(*) = 3;

但我发现通常 GROUP BY 是性能 killer ,尤其是在 MySQL 中。

关于mysql - 从桥接表中获取组 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2987652/

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