根据特定条件查找重复值

Posted

技术标签:

【中文标题】根据特定条件查找重复值【英文标题】:Find duplicate values based on specific criteria 【发布时间】:2021-12-27 13:25:51 【问题描述】:

如果这个问题已经得到解答,我很抱歉。我对 SQL 还是很陌生。

我有一个包含客户数据的数据库。

数据库中的每一行都包含一个 customer_number 和一个 end_record_date(如果客户仍处于活动状态,则为过去的日期或“00:00:00”)。

我需要在数据库中找到至少出现两次的所有客户行(因此他们的 customer_number 至少出现在两行上)。但我只想获取特定行,如果该 customer_number 至少在两行上处于活动状态(因此该特定客户的 end_record_date 的值需要在至少两行上为“00:00:00”)。

所以这就是我想要找到的:

row_id customer_number end_record date
1 12345 '00:00:00'
346 7568 '2021-01-01'
89 7568 '00:00:00'
1287 12345 '00:00:00'

在上面的示例中,我希望返回第 1 行和第 1287 行,因为它们符合我的条件。 rowid 89 和 346 不符合我的条件

我将如何处理这个问题?

我在 .sd3b 数据库上使用 sqlitetudio

【问题讨论】:

【参考方案1】:

如果您按customer_number 分组并在HAVING 子句中设置条件,则可以获得您想要的customer_numbers:

SELECT customer_number
FROM tablename
GROUP BY customer_number
HAVING SUM(end_record_date = '00:00:00') >= 2;

要获取表中所有符合条件的行,请使用运算符IN

SELECT *
FROM tablename
WHERE customer_number IN (
  SELECT customer_number
  FROM tablename
  GROUP BY customer_number
  HAVING SUM(end_record_date = '00:00:00') >= 2
);

请参阅demo。

【讨论】:

以上是关于根据特定条件查找重复值的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:如何根据特定列上特定值的条件选择数据框中的行[重复]

在python中查找匹配特定条件的重复项

如果地图值等于特定文本,则有条件地呈现 <a href> [重复]

如何在特定字段 MongoDB 上查找 Distinct No of Document 并根据条件打印文档数?

mysql:查找具有重复值和条件的行[重复]

根据索引在熊猫数据框中查找特定列的值[重复]