gpt4 book ai didi

sql - 连接的不同计数结果

转载 作者:行者123 更新时间:2023-12-02 06:00:48 25 4
gpt4 key购买 nike

我有那个sql:

SELECT DISTINCT 
count(KTT)
FROM
TRA.EVENT;

它返回给我的号码是 1901335。

现在我想使用 join 扩展 sql,如下所示:

SELECT DISTINCT 
count(E.KTT)
FROM
TRA.EVENT E
LEFT JOIN TRA.TMP_BNAME TBN ON E.KTT = TBN.KTT_DEF;

但这里我得到的结果是 1942376。

我不明白为什么?我还期望结果为 1901335。我认为我可以根据 EVENT 的条目轻松加入来自 TBN 的值?

编辑

SELECT DISTINCT 
E.KTT,
TB.B_BEZEICHNER
FROM
TRA.EVENT E
LEFT JOIN TRA.TMP_BNAME TBN ON E.KTT = TBN.KTT_DEF
LEFT JOIN TRA.TMP_B TB ON TBN.B_ID = TB.B_ID;

我做错了什么?

感谢您的帮助。斯特凡

最佳答案

您尚未提供完整的详细信息,因此请将这些评论视为一般评论。

当您连接 2 个表时,可能会从一个表创建“重复”行。在您的实例中,TRA.TMP_BNAME 表中可能有超过 1 条记录具有相同的 KTT_DEF。当您将其连接到 TRA.EVENT 表时,它会为 TRA.EVENT 表中的每条原始记录创建多个记录。

您可以选择从 TRA.EVENT 中计算 KTT 的不同值并使用 DISTINCT 关键字,但您需要将其放入COUNT:选择计数(DISTINCT E.KTT)。只要您的值(value)观实际上是独一无二的,这就会起作用。如果不是,计数将与第一个查询不同。

关于sql - 连接的不同计数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741760/

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