집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server의 여러 열에서 최소값을 효율적으로 찾는 방법은 무엇입니까?
SQL Server: 여러 열에서 효율적으로 최소값 찾기
SQL Server 테이블의 여러 열에서 최소값을 찾는 것은 일반적인 데이터 분석 작업입니다. 이 문서에서는 SQL Server 2005 이상을 중심으로 이를 달성하기 위한 효율적인 방법을 제시합니다.
'Col1', 'Col2', 'Col3' 열이 있는 테이블을 가정해 보겠습니다. 우리의 목표는 각 행에 대해 이 세 열의 최소값을 포함하는 'TheMin'이라는 새 열을 만드는 것입니다.
방법 1: CASE 표현식 사용
간단한 접근 방식에서는 CASE 표현식을 사용하여 열 값을 비교하고 최소값을 할당합니다. 이는 소수의 열에 효율적입니다.
<code class="language-sql">SELECT Id, CASE WHEN Col1 < Col2 AND Col1 < Col3 THEN Col1 WHEN Col2 < Col1 AND Col2 < Col3 THEN Col2 ELSE Col3 END AS TheMin FROM YourTableNameHere;</code>
이 CASE 문은 값을 비교하여 가장 작은 것을 선택합니다.
방법 2: 여러 열에 UNPIVOT 사용
많은 열을 처리할 때 UNPIVOT 연산자는 더 확장 가능한 솔루션을 제공합니다. UNPIVOT은 여러 열을 단일 열로 변환하여 쉽게 집계할 수 있도록 합니다.
<code class="language-sql">WITH cte (ID, Col1, Col2, Col3) AS ( SELECT ID, Col1, Col2, Col3 FROM TestTable ) SELECT cte.ID, Col1, Col2, Col3, TheMin FROM cte JOIN ( SELECT ID, MIN(Amount) AS TheMin FROM cte UNPIVOT (Amount FOR AmountCol IN (Col1, Col2, Col3)) AS unpvt GROUP BY ID ) AS minValues ON cte.ID = minValues.ID;</code>
UNPIVOT은 데이터의 형태를 변경한 다음 MIN()이 각 ID 그룹 내에서 최소값을 찾습니다. 결과는 원래 테이블에 다시 조인됩니다. 이 방법은 중첩된 CASE 문보다 더 많은 수의 열을 사용하여 유지 관리가 더 쉽고 효율적입니다.
위 내용은 SQL Server의 여러 열에서 최소값을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!