# 동적 파라미터 사용 설명
동적 파라미터는 SQL 코드의 일부를 동적으로 조정할 수 있게 해줍니다. 실제 계산 중에 동적 파라미터 값이 쿼리 코드에 포함되며, 사용된 변수 ${파라미터 타입: 파라미터 이름}
가 해당 값으로 대체됩니다. 리포트를 저장할 때는 현재의 동적 파라미터 값이 기본값으로 저장됩니다.
동적 파라미터를 사용하면, 여러 번 사용되는 복잡한 SQL 코드를 효율적으로 관리할 수 있습니다. 또한, 동적 파라미터를 통해 리포트 열람자가 특정 범위 내에서 쿼리 코드를 변경할 수 있도록 할 수도 있습니다.
# 가변 콘텐츠
가변 콘텐츠의 동적 파라미터는 특정 시간 또는 커스텀 입력 값을 선택할 수 있으며, 계산 중에 직접 대체될 수 있습니다.
예를 들어, TOP N을 코인 양으로 랭킹할 경우, 가변 콘텐츠에 N을 지정하면, 구성원은 여러 리포트를 저장할 필요 없이 필요에 따라 상위 10명, 상위 100명, 또는 상위 1000명의 유저 세부 정보를 조회할 수 있습니다.
SELECT * FROM
ta.v_event_7 where "$part_date" BETWEEN '2024-01-29' AND '2024-02-04'
LIMIT ${Variable1}
WARNING
주의 데이터 보안을 위해, 원본 쿼리 코드에서 사용되지 않는 테이블은 가변 콘텐츠에 표시할 수 없습니다.
# 이벤트 시간
이벤트 시간의 동적 파라미터를 사용하면 분석 기간 내의 이벤트 데이터를 빠르게 필터링할 수 있습니다.
예를 들어, SQL 리포트에서 지난 7일간의 유저 누적 결제 금액을 기준으로 랭킹을 매겨야 할 경우, 동적 파라미터를 추가하여 동적 시간 범위를 선택할 수 있습니다. 쿼리 시에는 해당 날짜를 기준으로 지난 7일간의 결제 이벤트를 계산합니다.
SELECT
"#user_id",
SUM(pay_amount) AS count_sum
FROM
ta.v_event_7
WHERE ${PartDate:date1}
GROUP BY "#user_id"
LIMIT 10
프로젝트에서 여러 시간대를 사용할 수 있는 경우, '시간대 오프셋의 영향을 받는' 이벤트 시간 파라미터를 선택할 수 있습니다. 시간대의 영향을 받는 동적 파라미터는 표시 시간대에 대한 이벤트 발생일의 오프셋을 기준으로 계산됩니다. 이는 "$part_date_with_timezone"가 "$part_date"를 기반으로 필터링하지 않으며, 다른 모델 로직과 일치합니다. 이 동적 파라미터는 현재 프로젝트의 이벤트 테이블에만 유효하며, SQL 리포트 내 다른 프로젝트의 이벤트 테이블에는 영향을 미치지 않습니다.
# 수식 (숫자, 문자열, 시간)
숫자, 문자열, 시간의 세 가지 필드를 필터링할 때, 수식의 동적 파라미터를 사용하여 유연하게 구성할 수 있습니다.
예를 들어, 유저 속성의 누적 결제 금액이 숫자인 경우, 쿼리 코드에 숫자 수식을 삽입하여, 리포트 열람자가 누적 결제 금액이 특정 범위 내에 있거나 특정 수치를 초과하는 유저를 필터링할 수 있습니다.
SELECT * FROM
ta.v_user_7
WHERE "total_pay_amount" ${Number:number1}
LIMIT 10
# 선택 사항
동적 파라미터를 선택하면 미리 준비된 SQL 코드에 다양한 옵션명을 설정할 수 있습니다. 열람자는 이름에 따라 선택만 하면 되고, 해당 SQL 코드는 동적 파라미터로 자동 대체됩니다.
예를 들어, 유저를 레벨 간격에 따라 유형으로 분류할 수 있습니다. 리포트 열람자는 유저 세부 정보를 유형별로 빠르게 보고자 할 때, 레벨 간격 필터링 코드에 이름을 설정하여 쉽게 선택할 수 있습니다.
SELECT * FROM
ta.v_user_7
WHERE "current_level" ${Selector:selector2}
LIMIT 10