gpt4 book ai didi

mysql - 用于后期处理重复行的 SQL 查询

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

我希望能够在 SQL 中执行此操作 - 尽管我不确定是否可以,因为我不太了解 SQL

假设我有一个带有字段的数据库表(排名):

Id, Email, CreatedAt, Rank

我想确定电子邮件字段中重复但排名不同的记录数

我相信这应该解决上述查询

Select Email, Count(Rank) 
From Rankings
Group By Rank
Having (Count(Rank)>1)

但是,我想获取上述查询的行并对其执行此附加操作:

返回具有相同电子邮件但在最早和最新 CreatedAt 字段中排名不同的记录数。本质上,我想忽略第一个查询中的重复行,其中按时间排序时,从重复项的第一个记录到重复项的最后一个记录,排名没有改变。

如果这很复杂,这里有一个示例数据库

Id, Email, CreatedAt, Rank
1, a@xyz.com, 100, 4
2, b@xyz.com, 101, 1
3, c@xyz.com, 102, 5
4, d@xyz.com, 103, 5
5, c@xyz.com, 104, 2
6, d@xyz.com, 105, 3
7, d@xyz.com, 106, 5

第一个查询将返回

c@xyz.com 2
d@xyz.com 3

我希望返回第二个查询:

1

因为它将消除 d@xyz.com,其排名不会随时间变化,而 c@xyz.com 会随时间变化

如何在 SQL 中实现此目的?

最佳答案

SELECT Email, COUNT(DISTINCT Rank) AS variance 
FROM Rankings
GROUP BY Email
HAVING variance > 1

关于mysql - 用于后期处理重复行的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41884346/

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