首页 >数据库 >mysql教程 >如何使用 SQL 识别同一账户每日多次付款的用户?

如何使用 SQL 识别同一账户每日多次付款的用户?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-08 21:52:52468浏览

How to Identify Users with Multiple Daily Payments on the Same Account Using SQL?

使用 SQL 查找同一账户每日多次付款的用户

本指南演示如何识别在同一天使用相同帐号和不同邮政编码进行多次付款的用户。 我们将使用 PAYMENT 表,其中包含 user_idaccount_nozipdate 列。

初始 SQL 查询:

此查询标识每个帐户每天进行多次付款的用户:

<code class="language-sql">SELECT
  user_id,
  COUNT(*) AS payment_count
FROM
  PAYMENT
GROUP BY
  account_no,
  user_id,
  date
HAVING
  COUNT(*) > 1;</code>

这会按帐号、用户 ID 和日期对付款进行分组,然后进行筛选以仅显示具有多笔付款的组。

增强的不同邮政编码查询:

为了确保仅识别具有多次付款不同邮政编码的用户,我们使用子查询:

<code class="language-sql">SELECT
  user_id,
  account_no,
  date,
  COUNT(*) AS payment_count
FROM
  (SELECT DISTINCT
    user_id,
    account_no,
    zip,
    date
  FROM
    PAYMENT) AS distinct_payments
GROUP BY
  user_id,
  account_no,
  date
HAVING
  COUNT(*) > 1;</code>

此子查询 (distinct_payments) 首先选择用户、帐户、邮政编码和日期的唯一组合。然后,主查询对该子集进行分组和过滤,保证只返回具有多次付款和不同邮政编码的记录。 为了清楚起见,AS distinct_payments 子句为子查询分配一个别名。

以上是如何使用 SQL 识别同一账户每日多次付款的用户?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn