> 데이터 베이스 > MySQL 튜토리얼 > SQL을 사용하여 같은 날 여러 번 결제한 사용자를 찾는 방법은 무엇입니까?

SQL을 사용하여 같은 날 여러 번 결제한 사용자를 찾는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-08 21:50:54
원래의
441명이 탐색했습니다.

How to Find Users with Multiple Payments on the Same Day Using SQL?

같은 날 여러 번 결제한 사용자를 찾는 SQL 쿼리

이 문서에서는 SQL을 사용하여 같은 날 여러 번 결제한 사용자를 식별하는 방법과 별도의 우편번호만 고려하도록 개선된 방법을 보여줍니다. PAYMENT, user_id, account_nozip에 대한 열이 있는 date 테이블을 사용하겠습니다.

초기 쿼리(고유 우편번호 없음):

초기 접근 방식에서는 GROUP BYHAVING 절을 사용하여 결제 금액을 계산합니다.

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

이 쿼리는 사용자, 계좌 번호 및 날짜별로 결제를 그룹화합니다. HAVING 절은 결과를 필터링하여 동일한 계정을 사용하여 특정 날짜에 두 번 이상 결제한 사용자만 표시합니다.

향상된 검색어(고유 우편번호 사용):

고유한 우편번호만 고려하기 위해 그룹화하고 계산하기 전에 사용자, 계정, 우편번호 및 날짜의 고유한 조합을 선택하는 하위 쿼리가 도입되었습니다.

<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)를 사용하여 고유한 결제 기록 세트를 생성합니다. 그런 다음 이러한 고유한 레코드를 그룹화하고 HAVING 절을 적용하여 각 결제에 대해 고유한 우편번호만 고려하여 같은 날 여러 번 결제한 사용자를 식별합니다. 이렇게 하면 같은 날 동일한 계좌에 여러 번 결제했지만 우편번호가 다른 사용자는 결과에 포함되지 않습니다.

위 내용은 SQL을 사용하여 같은 날 여러 번 결제한 사용자를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿