APPLY 수정자를 사용하면 일치하는 컬럼에 함수를 적용할 수 있어 데이터 분석 및 변환 작업에 매우 유용합니다.
이 기능의 사용 방법은 뉴욕 택시 데이터셋을 통해 알아보겠습니다. 이 데이터셋은 ClickHouse SQL playground에서도 확인할 수 있습니다.
패턴과 일치하는 컬럼 선택하기
_amount가 포함된 컬럼만 선택하는 경우입니다. 각 컬럼 이름을 일일이 입력하는 대신, 정규식과 함께 COLUMNS 표현식을 사용할 수 있습니다:
SQL playground에서 이 쿼리 실행하기이 쿼리는 처음 10개 행을 반환하며, 이름이 패턴
.*_amount(임의의 문자 뒤에 “_amount”가 오는 형태)과 일치하는 컬럼만 포함합니다.
fee 또는 tax가 포함된 컬럼도 반환한다고 가정해 보겠습니다.
이를 반영하도록 정규식을 업데이트할 수 있습니다:
SQL playground에서 이 쿼리를 실행해 보십시오
여러 패턴 선택
SQL playground에서 이 쿼리 실행하기
모든 컬럼에 함수 적용
APPLY 수정자를 사용하면 모든 컬럼에 함수를 적용할 수도 있습니다.
예를 들어, 각 컬럼의 최댓값을 찾으려면 다음 쿼리를 실행할 수 있습니다:
SQL playground에서 이 쿼리 실행해 보기
SQL playground에서 이 쿼리를 실행해 보십시오
SQL playground에서 이 쿼리를 실행해 보세요
APPLY 수정자는 함수를 받을 뿐만 아니라 람다도 허용하므로, 이를 통해 round 함수가 평균값을 소수점 이하 2자리까지 반올림하도록 유연하게 지정할 수 있습니다:
SQL playground에서 이 쿼리를 실행해 보십시오
컬럼 대체하기
REPLACE 수정자를 사용하면 됩니다. 이 수정자는 다른 컬럼은 그대로 둔 채 특정 컬럼을 대체합니다.
SQL playground에서 이 쿼리를 실행해 보세요
컬럼 제외하기
EXCEPT 수정자를 사용해 필드를 제외할 수도 있습니다. 예를 들어 tolls_amount 컬럼을 제거하려면 다음과 같이 쿼리를 작성합니다:
SQL playground에서 이 쿼리를 실행해 보세요