使用 SQL 查找同一账户每日多次付款的用户
本指南演示如何识别在同一天使用相同帐号和不同邮政编码进行多次付款的用户。 我们将使用 PAYMENT
表,其中包含 user_id
、account_no
、zip
和 date
列。
初始 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中文网其他相关文章!