같은 날 여러 번 결제한 사용자를 찾는 SQL 쿼리
이 문서에서는 SQL을 사용하여 같은 날 여러 번 결제한 사용자를 식별하는 방법과 별도의 우편번호만 고려하도록 개선된 방법을 보여줍니다. PAYMENT
, user_id
, account_no
및 zip
에 대한 열이 있는 date
테이블을 사용하겠습니다.
초기 쿼리(고유 우편번호 없음):
초기 접근 방식에서는 GROUP BY
및 HAVING
절을 사용하여 결제 금액을 계산합니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!