gpt4 book ai didi

sql - 查询以获取 3 列中具有相同值且 1 列中具有不同值的行

转载 作者:行者123 更新时间:2023-12-04 14:23:59 24 4
gpt4 key购买 nike

我有一个包含大量数据的表,我需要获取 2 行或更多行中 IdMod、TableName 和 FieldName 列匹配的行。

查询:

SELECT DISTINCT aa.Id, aa.IdMod, aa.TableName, aa.FieldName, aa.OldValue, aa.NewValue, aa.Origin, aa.Destination, aa.CreationDate, aa.Discard
FROM Process aa
INNER JOIN (
SELECT IdMod, TableName, FieldName
FROM Process
GROUP BY IdMod, TableName, FieldName
HAVING COUNT(*) > 1
) bb
ON aa.IdMod = bb.IdMod AND aa.TableName = bb.TableName AND aa.FieldName = bb.FieldName
WHERE Destination='All' OR Destination=@dest OR Origin=@dest
ORDER BY IdMod,TableName, FieldName

通过这个查询我明白了:

Result

但我只想在 Origin 列不相同的情况下获取它。我的意思是,在这个结果中,我想要获得除第 6 行和第 7 行之外的所有内容,因为 IdMod、TableName 和 FieldName 匹配,但 Origin 也匹配。同样,我不想要第 8 行和第 9 行。但是,我想要第 3、4 和 5 行,因为其中至少一行具有不同的原点。当然,我想要 1 和 2,因为 Origin 不同。

我该怎么做?

最佳答案

我认为您可以通过检查列 Origin 来改进子查询 bb

SELECT IdMod, TableName, FieldName 
FROM Process
GROUP BY IdMod, TableName, FieldName
HAVING COUNT(*) > 1 AND COUNT(DISTINCT Origin) > 1

关于sql - 查询以获取 3 列中具有相同值且 1 列中具有不同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169500/

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