> 데이터 베이스 > MySQL 튜토리얼 > 단일 SQL 쿼리가 여러 WHERE 절 조건을 기반으로 고유한 합계를 검색할 수 있는 방법은 무엇입니까?

단일 SQL 쿼리가 여러 WHERE 절 조건을 기반으로 고유한 합계를 검색할 수 있는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-21 12:47:10
원래의
462명이 탐색했습니다.

How Can a Single SQL Query Retrieve Distinct Sums Based on Multiple WHERE Clause Conditions?

여러 WHERE 절을 사용하여 다양한 데이터 검색

SQL에서는 WHERE 절을 사용하여 특정 행을 필터링함으로써 테이블에서 데이터를 검색하는 방법을 맞춤설정할 수 있습니다. 이 문제는 동일한 테이블에서 각각 서로 다른 WHERE 절을 충족하는 두 개의 서로 다른 데이터 세트를 추출해야 하는 과제를 제시합니다.

예제 테이블 "transactions"는 ID, 계정 ID, 예산 ID, 적립 포인트 및 거래 유형을 특징으로 하는 금융 거래 기록을 저장합니다. 할당된 포인트의 합계와 각 고유 예산 ID에 대해 발행된 포인트의 합계를 계산하는 작업입니다.

이를 위해 필요한 WHERE 절을 결합하는 단일 SQL 쿼리를 구성할 수 있습니다. 다음 쿼리는 원하는 결과를 얻습니다.

<code class="language-sql">SELECT budget_id, 
       SUM(CASE WHEN type = 'allocation' THEN points ELSE 0 END) AS allocated,
       SUM(CASE WHEN type = 'issue' THEN points ELSE 0 END) AS issued
FROM transactions
GROUP BY budget_id</code>
로그인 후 복사

이 쿼리는 CASE WHEN 문을 사용하여 거래 유형에 따라 조건부로 포인트를 합산합니다. 각 예산 ID에 대해 쿼리는 "할당" 유형과 관련된 포인트 합계를 계산하고 이를 "할당" 열에 저장합니다. 마찬가지로 "issue" 유형의 포인트 합계를 계산하여 "issued" 열에 저장합니다. 예산 ID별로 결과를 그룹화함으로써 쿼리는 각 예산에 대해 할당된 포인트와 발행된 포인트에 대한 별도의 열을 포함하는 예상 결과 집합을 생성합니다.

이 쿼리는 WHERE 절을 결합하여 테이블에서 특정 데이터 하위 집합을 검색하는 SQL의 유연성을 보여 주며, 복잡한 데이터 검색 작업을 수행하기 위한 강력한 도구입니다.

위 내용은 단일 SQL 쿼리가 여러 WHERE 절 조건을 기반으로 고유한 합계를 검색할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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