gpt4 book ai didi

用于查找 count > 1 的记录的 SQL 查询

转载 作者:行者123 更新时间:2023-12-03 04:18:17 26 4
gpt4 key购买 nike

我有一个名为PAYMENT的表。在此表中,我有一个用户 ID、一个帐号、一个邮政编码和一个日期。我想查找每天使用相同帐号进行多次付款的所有用户的所有记录。

更新:此外,应该有一个过滤器,只计算邮政编码不同的记录。

表格如下所示:

| user_id | account_no | zip   |      date ||       1 |        123 | 55555 | 12-DEC-09 | |       1 |        123 | 66666 | 12-DEC-09 ||       1 |        123 | 55555 | 13-DEC-09 ||       2 |        456 | 77777 | 14-DEC-09 ||       2 |        456 | 77777 | 14-DEC-09 ||       2 |        789 | 77777 | 14-DEC-09 ||       2 |        789 | 77777 | 14-DEC-09 |

结果应该与此类似:

| user_id | count ||       1 |     2 |

您将如何在 SQL 查询中表达这一点?我正在考虑自加入,但由于某种原因我的计数是错误的。

最佳答案

使用HAVING子句和 GROUP By 使行唯一的字段

下面会发现

all users that have more than one payment per day with the same account number

SELECT 
user_id,
COUNT(*) count
FROM
PAYMENT
GROUP BY
account,
user_id,
date
HAVING COUNT(*) > 1

更新如果您只想包含那些具有不同 ZIP 的内容,您可以先获取一个不同的集合,然后执行 HAVING/GROUP BY

 SELECT 
user_id,
account_no,
date,
COUNT(*)
FROM
(SELECT DISTINCT
user_id,
account_no,
zip,
date
FROM
payment
) payment
GROUP BY
user_id,
account_no,
date
HAVING COUNT(*) > 1

关于用于查找 count > 1 的记录的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7151401/

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