동적 파라미터 사용 안내
동적 파라미터를 사용하면 쿼리 문의 일부 내용을 조정할 수 있습니다. 실제 계산 시 동적 파라미터의 값이 쿼리 문에 대입되어 사용된 변수 ${参数类型:参数名}를 대체하며, 리포트를 저장하면 현재 동적 파라미터의 값이 기본값으로 저장됩니다.
여러 번 사용하는 복잡한 쿼리 문 조각을 하나의 동적 파라미터로 관리할 수도 있고, 리포트 조회자가 동적 파라미터를 통해 일정 범위 내에서 쿼리 문을 수정하게 할 수도 있습니다.
변수
변수 동적 파라미터는 구체적인 시간을 선택하거나 값을 직접 입력할 수 있으며, 계산 시 그대로 대체됩니다.
예를 들어 골드 보유량 기준 TOP N 순위를 구할 때 변수로 N을 나타내면, 운영 담당자가 필요에 따라 상위 10명, 100명 또는 1000명의 유저 상세 데이터를 가져올 수 있어 리포트를 여러 개 저장할 필요가 없습니다.
SELECT * FROM
ta.v_user_2
ORDER BY "coin_sum" DESC
LIMIT ${Variable1}
데이터 보안을 위해 변수에는 원래 쿼리 문에서 사용하지 않은 테이블이 포함될 수 없습니다.
이벤트 시간
이벤트 시간 동적 파라미터를 사용하면 분석 기간 내의 이벤트 데이터를 빠르게 필터링할 수 있습니다.
예를 들어 SQL 리포트에서 유저의 최근 7일 누적 결제 금액으로 순위를 매겨야 하는 경우, 동적 파라미터를 추가하고 동적 기간을 선택하면 리포트 조회 시 당일 기준 최근 7일의 결제 이벤트를 바탕으로 통계합니다.
SELECT
"#user_id"
, sum("count") count_sum
FROM
v_event_2
WHERE (("$part_event" = 'recharge') AND (${PartDate:date1}))
GROUP BY "#user_id"
ORDER BY count_sum desc
LIMIT 10
프로젝트에서 다중 시간대를 활성화한 경우 이벤트 시간 파라미터에서 시간대 오프셋 영향 여부를 추가로 선택할 수 있습니다. 시간대의 영향을 받는 동적 파라미터는 계산 시 "$part_date"가 아니라 표시 시간대로 오프셋된 이벤트 발생 날짜(즉 "$part_date_with_timezone")를 기준으로 필터링하며, 다른 모델의 로직과 일치합니다.
이 동적 파라미터는 현재 프로젝트의 이벤트 테이블에만 적용되며, SQL 리포트에 있는 다른 프로젝트의 이벤트 테이블에는 영향을 주지 않습니다.
표현식(숫자, 텍스트, 시간)
숫자, 텍스트, 시간 세 가지 유형의 필드를 필터링할 때 표현식 동적 파라미터로 유연하게 설정할 수 있습니다.
예를 들어 누적 결제 금액은 숫자형 유저 속성입니다. 쿼리 문에 숫자 표현식을 삽입하면 리포트 조회자가 누적 결제 금액이 특정 구간에 있거나 일정 금액보다 큰 유저를 직접 필터링할 수 있습니다.
SELECT * FROM
ta.v_user_2
WHERE "coin_num" ${Number:number1}
LIMIT 10
선택 사항
선택 사항 동적 파라미터를 사용하면 미리 준비한 쿼리 문 조각마다 서로 다른 옵션 이름을 설정할 수 있습니다. 조회자는 이름만 보고 선택하면 되며, 해당 쿼리 문 조각이 자동으로 동적 파라미터를 대체합니다.
예를 들어 레벨 구간에 따라 유저를 여러 유형으로 나눌 수 있고, 리포트 조회자가 유형별 유저 상세 데이터를 빠르게 보고 싶어 하는 경우, 레벨 구간별 필터 쿼리 문 조각에 이름을 설정해 두면 쉽게 선택할 수 있습니다.
SELECT * FROM
ta.v_user_2
WHERE "user_level" ${Selector:selector2}
LIMIT 10

