Looker 필터 표현식

필터 표현식은 Looker 쿼리를 필터링하는 고급 방법이며, 이 페이지에서는 쿼리 작성 방법을 설명합니다. Looker의 탐색 섹션에서 필터를 추가하고 일치 (고급) 옵션을 선택하여 사용할 수 있습니다. filter 매개변수를 사용하는 요소의 LookML에서도 사용됩니다.

LookML에서 필터 표현식을 사용할 때는 표현식을 따옴표로 묶어야 합니다 (적절한 용도는 filters 문서 페이지 참조). 이는 NULL와 같은 논리 값에 특히 중요합니다.

Looker의 탐색 섹션에서 필터 표현식을 사용하는 경우 표현식을 따옴표로 묶지 않아도 됩니다.

액세스 권한 부여 시 필터 표현식이 지원되지 않습니다. 자세한 내용은 access_grant 문서 페이지를 참고하세요.

문자열

문자열 필터의 일치는 모델 파일의 case_sensitive 설정과 방언이 대소문자 구분을 지원하는지에 따라 달라집니다. 예를 들어 모델에 case_sensitive이 사용 설정된 경우 FOO 표현식은 "food"라는 단어와 일치하지 않습니다. case_sensitive가 사용 설정되어 있지 않거나 방언이 대소문자 구분을 지원하지 않는 경우 FOO 표현식은 "food"와 일치합니다.

설명
FOO 정확히 'FOO'입니다.
FOO,BAR 정확히 'FOO' 또는 'BAR'입니다.
%FOO% 'FOO&F;;가 포함되어 있고 'Buffoon' 및 '패스트푸드'와 일치합니다.
FOO% 'FOO'로 시작하는 경우 'foolish' 및 'food'와 일치하지만 'buffoon' 또는 'fastfood'와는 일치하지 않습니다.
%FOO 'FOO&;로 끝나는 경우 'buffoo', 'fast foo',
F%OD 'F'로 시작하고 'OD'로 끝나며 '패스트푸드'와 일치
EMPTY 문자열이 비어 있거나 (문자 0개) null (값이 없음)
NULL 값이 null임 (LookML 필터 표현식의 일부로 사용되는 경우 filters 문서 페이지에 표시된 대로 NULL를 따옴표로 묶음)
-FOO 'FOO'가 아닌 다른 값과 같고 '피자', '트라이얼', '재미'와는 일치하지만
-FOO,-BAR 'FOO' 또는 'BAR'과 같지 않으면 'FOO' 및 'BAR';을 제외한 모든 값과 일치합니다.
-%FOO% 'FOOO'가 포함되어 있지 않음, '버퍼' 또는 '패스트푸드'와 일치하지 않음
-FOO% 'FOOO'로 시작하지 않음, 'foolish' 또는 'food"
-%FOO 'FOOO'로 끝나지 않음, 'buffoo' 또는 'fast foo'
-EMPTY 문자열이 비어 있지 않음 (문자 1개 이상 포함)
-NULL 열의 값이 null이 아닙니다 (LookML 필터 표현식의 일부로 사용되는 경우 filters 문서 페이지에 표시된 대로 -NULL를 따옴표로 묶음).
FOO%,BAR 'FOO'로 시작하거나 'BAR'로 정확히 일치하므로 'food'와 일치하지만 'barfood'와는 일치하지 않습니다.
FOO%,-FOOD 'FOOD'로 시작하지만 'FOOD'는 아닙니다.
_UF 'UF'가 앞에 오는 단일 문자가 있는 경우 "buffoon"와 일치합니다.

문자열 필터에 특수문자 포함

문자열 필터에 특수문자를 포함시키려면 다음 규칙을 참고하세요.

  • ", % 또는 _를 포함하려면 이스케이프 문자 앞에 ^를 붙입니다. 예: ^", ^%, ^_
  • 선행 -를 포함하려면 ^-로 이스케이프 처리합니다. -이 선행 문자인 경우에만 필요합니다. -가 문자열 내부에 있으면 이스케이프 처리할 필요가 없습니다.
  • ^을 포함하려면 ^^로 이스케이프 처리합니다.
  • 일반 UI 문자열 필터에 쉼표를 포함하려면 쉼표를 백슬래시 문자인 \`. For example:산타크루스\, CA`로 시작합니다.
  • 필터에 일치 (고급) 옵션과 함께 쉼표를 포함하려면 쉼표를 이스케이프 문자인 ^로 시작합니다. 예를 들면 Santa Cruz^, CA입니다.
  • LookML의 필터 표현식에 쉼표를 포함하려면 이스케이프 문자 ^를 접두사로 붙입니다. 예:
      field: filtered_count {
      type: count
      filters: [city: "Santa Cruz^, CA"]
    }

Looker 콘텐츠에 맞춤 드릴링을 사용하는 경우 이스케이프 처리하거나 문자열 필터에 특수문자를 포함하는 것이 좋습니다. 자세한 내용은 Link 매개변수 페이지의 Looker 콘텐츠에 연결할 때 고려해야 할 사항 섹션을 참조하세요.

날짜 및 시간

Looker 날짜 필터링을 사용하면 SQL 날짜 함수 대신 영어 구문을 사용할 수 있습니다.

날짜 및 시간 필터의 기본 구조

예를 들면 다음과 같습니다.

  • {n}은 정수입니다.
  • {interval}은 시간, 일, 주 또는 월과 같은 시간 증가분입니다.

    사용하는 문구에 따라 {interval}에 부분 기간이 포함되는지 아니면 전체 기간만 포함되는지 결정됩니다. 예를 들어 3 days 표현식에는 현재 날짜, 부분적인 날짜뿐만 아니라 이전 2일도 포함됩니다. 3 days ago for 3 days 표현식에는 지난 3일간의 완전한 날짜들이 포함되며 현재의 완전한 날짜는 제외됩니다. 자세한 내용은 상대적 날짜 섹션을 참고하세요.

  • {time}은 YYYY-MM-DD HH:MM:SS 또는 YYYY/MM/DD HH:MM:SS 형식의 시간을 지정하거나 YYYY-MM-DD 또는 YYYY/MM/DD 형식으로 날짜를 지정할 수 있습니다. YYYY-MM-DD 양식을 사용할 때는 월과 일의 숫자를 모두 포함해야 합니다(예: 2016-01). 월 또는 일을 한 자릿수로 자르면 날짜가 아닌 오프셋으로 해석됩니다. 예를 들어 2016-1은 2016에서 1년, 또는 2015년을 뺀 값으로 해석됩니다.

다음은 가능한 모든 날짜 필터 조합입니다.

조합 참고
this {interval} this month this week, this month, this quarter 또는 this year를 사용할 수 있습니다. this day는 지원되지 않습니다. 현재 날짜의 데이터를 가져오려면 today를 사용하면 됩니다.
{n} {interval} 3 days
{n} {interval} ago 3 days ago
{n} {interval} ago for {n} {interval} 3 months ago for 2 days
before {n} {interval} ago before 3 days ago
before {time} before 2018-01-01 12:00:00 before에는 지정한 시간이 포함되지 않습니다. before 2018-01-01 표현식은 2018-01-01 이전의 모든 데이터를 반환하지만 2018-01-01의 데이터는 반환하지 않습니다.
after {time} after 2018-10-05 after에는 지정한 시간이 포함됩니다. 따라서 after 2018-10-05 표현식은 2018-10-05의 데이터와 2018-10-05 이후의 모든 날짜를 반환합니다.
{time} to {time} 2018-05-18 12:00:00 to
2018-05-18 14:00:00
초기 시간 값이 포함됩니다. 후자는 그렇지 않습니다. 따라서 2018-05-18 12:00:00 to 2018-05-18 14:00:00 표현식은 "2018-05-18 12:00:00"부터 2018-05-18 13:59:59까지 데이터를 반환합니다.
this {interval} to {interval} this year to second 각 간격의 시작 부분이 사용됩니다. 예를 들어 this year to second 표현식은 쿼리가 실행되는 연도의 시작부터 쿼리가 실행되는 두 번째 시작까지의 데이터를 반환합니다. this week to day는 쿼리가 실행되는 주의 시작부터 쿼리가 실행되는 날의 시작까지의 데이터를 반환합니다.
{time} for {n} {interval} 2018-01-01 12:00:00 for 3 days
today today
yesterday yesterday
tomorrow tomorrow
{day of week} Monday 측정기준 그룹 날짜 필드에서 요일을 지정하면 지정된 요일과 일치하는 가장 최근 날짜가 반환됩니다. 예를 들어 Dimension Group Date matches (advanced) Monday 표현식은 가장 최근 월요일을 반환합니다.

이 컨텍스트에서 {day of week}beforeafter 키워드와 함께 사용할 수도 있습니다. 예를 들어 Dimension Group Date matches (advanced) after Monday 표현식은 가장 최근 월요일과 가장 최근 월요일 이후의 모든 데이터를 반환합니다. Dimension Group Date matches (advanced) before Monday 표현식은 가장 최근 월요일 이전에 매일 반환되지만 가장 최근 월요일은 반환하지 않습니다.

측정기준 그룹 요일 필드를 사용하여 요일을 지정하면 지정된 요일과 일치하는 요일이 반환됩니다. 따라서 Dimension Group Day of Week matches (advanced) Monday 표현식은 매주 월요일을 반환합니다.
next {week, month, quarter, fiscal quarter, year, fiscal year} next week next 키워드는 위에 나열된 간격 중 하나가 필요하고 다른 간격에서는 작동하지 않는다는 점에서 고유합니다.
{n} {interval} from now 3 days from now
{n} {interval} from now for {n} {interval} 3 days from now for 2 weeks

날짜 필터를 함께 사용할 수도 있습니다.

  • OR 로직 가져오기: 동일한 필터에 여러 조건을 쉼표로 구분하여 입력합니다. 예를 들어 today, 7 days ago는 '오늘 또는 7일 전'을 의미합니다.
  • AND 로직 가져오기: 여러 날짜 또는 시간 필터에 조건을 하나씩 입력합니다. 예를 들어 after 2014-01-01생성일 필터에 넣은 다음 before 2 days ago생성 시간 필터에 입력할 수 있습니다. 즉, '2014년 1월 1일 이후와 2일 전에'가 됩니다.

절대적 날짜

절대 날짜 필터는 특정 날짜 값을 사용하여 쿼리 결과를 생성합니다. 특정 기간에 대한 쿼리를 만들 때 유용합니다.

설명
2018/05/29 2018년 5월 29일
2018/05/10 for 3 days 2018년 5월 10일 00:00:00부터 2018/05/12까지 23:59:59
after 2018/05/10 2018/05/10 00:00:00 이후
before 2018/05/10 2018년 5월 10일 00:00:00 이전
2018/05 2018년 5월 전체 기간
2018/05 for 2 months 2018년 5월 및 2018/06년 6개월 이내
2018/05/10 05:00 for 5 hours 2018년 5월 10일 05:00:00부터 2018/05/10까지 09:59:59
2018/05/10 for 5 months 2018년 5월 10일 00:00:00부터 2018/10/09까지 23:59:59
2018 2018년 연중 (2018/01/01 00:00:00~2018/12/31 23:59:59)
FY2018 2018년부터 전체 회계 연도 (Looker 개발자가 4월에 회계 연도를 시작하도록 지정한 경우)는 2018/04/01 00:00부터 2019/03/31 23:59까지입니다.
FY2018-Q1 2018년부터 회계 연도 1분기 (Looker 개발자가 회계 연도를 4월로 시작하도록 지정했다면 2018/04/01 00:00:00부터 2018/06/35 23:59까지)

상대적 날짜

상대 날짜 필터를 사용하면 현재 날짜를 기준으로 롤링 날짜 값으로 쿼리를 만들 수 있습니다. 이는 쿼리를 실행할 때마다 업데이트되는 쿼리를 만들 때 유용합니다.

아래의 모든 예에서 오늘이 2018/05/18 금요일 18:30:02라고 가정해 보겠습니다. Looker에서 week_start_day로 설정을 변경하지 않는 한 월요일에 시작됩니다.

설명
1 second 현재 두 번째 (2018/05/18 18:30:02)
60 seconds 60초 전 60초 (2018/05/18 18:29:02~2018/05/18 18:30:01)
60 seconds ago for 1 second 60초 전 1초 (2018/05/18 18:29:02)

설명
1 minute 현재 분 (2018/05/18 18:30:00~18:30:59)
60 minutes 60분 전 60분 (2018/05/18 17:31:00~2018/05/18 18:30:59)
60 minutes ago for 1 minute 60분 전 1분 (2018/05/18 17:30:00~2018/05/18 17:30:59)

시간

설명
1 hour 현재 시간 (2018/05/18 18:00~2018/05/18 18:59)
24 hours 24시간 전의 1시간 (2018/05/17 19:00~2018/05/18 18:59)
24 hours ago for 1 hour 1시간 동안 24시간 전과 같은 시간 (2018/05/17 18:00~2018/05/17 18:59)

설명
today 현재 날짜 (2018/05/18 00:00~2018/05/18 23:59)
2 days 어제부터 오늘까지 (2018/05/17 00:00~2018/05/18 23:59)
1 day ago 어제 (2018/05/17 00:00~2018/05/17 23:59)
7 days ago for 7 days 마지막 완전한 7일 (2018/05/11 00:00~2018/05/17 23:59)
today for 7 days 오늘부터 자정까지 다음 7일 동안 (2018/05/18 00:00~2018/05/24 23:59)
last 3 days 2일 전 오늘 하루 (2018/05/16 00:00~2018/05/18 23:59)
7 days from now 향후 7일 (2018/05/25 00:00~2018/05/25 23:59)

설명
1 week 이번 주 이후 (2018/05/14 00:00~2018/05/20 23:59)
this week 이번 주 이후 (2018/05/14 00:00~2018/05/20 23:59)
before this week 이번 주말까지 (2018/05/14 00:00 이전)
after this week 이번 주말 이후 (2018/05/14 00:00 이후)
next week 다음 주 월요일부터 1주일 (2018/05/21 00:00~2018/05/27 23:59)
2 weeks 1주 전 월요일부터 (2018/05/07 00:00~2018/05/20 23:59)
last week '1주 전'의 동의어
1 week ago 1주 전 월요일부터 1주일 전 (2018/05/07 00:00~2018/05/13 23:59)

개월

설명
1 month 이번 달 (2018/05/01 00:00~2018/05/31 23:59)
this month '0개월 전'의 동의어(2018/05/01 00:00~2018/05/31 23:59)
2 months 지난 2개월 (2018/04/01 00:00~2018/05/31 23:59)
last month 2018년 4월 전체
2 months ago 2018/03
before 2 months ago 2018년 3월 1일 이전
next month 2018년 6월 전체
2 months from now 2018년 7월 전체
6 months from now for 3 months 2018년 11월~2019년 1월

분기

설명
1 quarter 현재 분기 (2018/04/01 00:00~2018/06/30 23:59)
this quarter '0분기 전'의 동의어(2018/04/01 00:00~2018/06/30 23:59)
2 quarters 지난 2분기 (2018/01/01 00:00~2018/06/30 23:59)
last quarter 1분기 전체 (2018/01/01 00:00~2018/03/31 23:59)
2 quarters ago 작년 4분기 모두 (2017/010/01 00:00~2017/12/31 23:59)
before 2 quarters ago 작년 4분기 전 기간
next quarter 다음 분기 전체 (2018/07/01 00:00~2018/09/30 23:59)
2018-07-01 for 1 quarter 3분기 모두 (2018/07/01 00:00~2018/09/30 23:59)
2018-Q4 4분기 전체 (2018/10/01 00:00~2018/12/31 23:59)

Looker 개발자가 회계 연도를 사용하여 지정한 경우 이 표현식에 fiscal를 입력하여 달력 분기 대신 회계 분기를 사용할 수 있습니다. 예를 들어 last fiscal quarter를 사용할 수 있습니다.

설명
1 year 현재 연도 전체 (2018/01/01 00:00~2018/12/31 23:59)
this year 현재 연도 전체 (2018/01/01 00:00~2018/12/31 23:59)
next year 다음 해의 모든 날짜 (2019/01/01 00:00~2019/12/31 23:59)
2 years 지난 2년 (2017/01/01 00:00~2018/12/31 23:59)
last year 2017년 전체
2 years ago 2016년 전체
before 2 years ago 2016/01/01 이전의 모든 시간 (2016/01/01과 2016/05/18 사이의 날짜는 포함되지 않음)

Looker 개발자가 회계 연도를 사용하여 지정한 경우 이 표현식에 fiscal을 입력하여 달력 분기 대신 회계 연도를 사용할 수 있습니다. 예를 들어 last fiscal year를 사용할 수 있습니다.

불리언

Looker에서 참 또는 거짓 유형의 값을 필터링하려면 어떤 유형의 참 또는 거짓 값을 상호작용하고 있는지 알아야 합니다.

설명
yes 또는 Yes 필드가 true로 판정

Looker 개발자: type: yesno 측정기준의 경우 소문자 사용, filters 매개변수 (예: 측정에 사용 또는 always_filter에 사용)에는 대문자 사용
no 또는 No 필드가 false로 평가됨

Looker 개발자: type: yesno 측정기준의 경우 소문자 사용, filters 매개변수 (예: 측정에 사용 또는 always_filter에 사용)에는 대문자 사용
TRUE true가 포함된 필드 (부울 데이터베이스 값이 포함된 필드의 경우)
FALSE 필드에 false 포함 (부울 데이터베이스 값이 포함된 필드의 경우)

숫자

숫자 필터는 자연어 표현식 (예: 3 to 10)과 관계형 연산자 (예: >20)를 모두 지원합니다. Looker는 OR 연산자를 지원하여 여러 필터 범위 (예: 3 to 10 OR 30 to 100)를 표현할 수 있습니다. AND 연산자를 사용하면 관계형 연산자 (예: >=3 AND <=10)로 숫자 범위를 표현하여 범위를 지정할 수 있습니다. 숫자 필터는 대수 간격 표기법을 사용하여 숫자 필드를 필터링할 수도 있습니다.

NOT를 사용하는 숫자 필터 표현식의 구문은 직관적이지 않을 수 있습니다. 아래의 예는 사용 방법을 보여줍니다.

설명
5 정확히 5
NOT 5
<>5
!=5
값이 정확히 5인 경우
1, 3, 5, 7 값이 1, 3, 5, 7 중 하나인 경우
NOT 66, 99, 4 66, 99 또는 4와 같은 값이 아닙니다.
1, NOT 2 1과 2 둘 다 아님
1, NOT 2, >100 1, 2, 100보다 크지 않음
5, NOT 6, NOT 7 5, 6 또는 7 아님
5.5 to 10
>=5.5 AND <=10
5.5 이상이지만 10 이하임
NOT 3 to 80.44
<3 OR >80.44
3 미만 또는 80.44 초과
1 to
>=1
1 이상
to 10
<=10
10 이하
>10 AND <=20 OR 90 10보다 크고 20 이하이거나 정확하게 90인 경우
>=50 AND <=100 OR >=500 AND <=1000 50 이상 100 이하 또는 500 이상 1,000 이하
NULL 데이터가 없습니다 (LookML 필터 표현식의 일부로 사용되는 경우 filters 문서 페이지에 표시된 대로 NULL를 따옴표로 묶음).
NOT NULL 데이터가 있습니다 (LookML 필터 표현식의 일부로 사용되는 경우 filters 문서 페이지에 표시된 대로 NOT NULL를 따옴표로 묶음).
(1, 7) 1 < x 7로 해석됩니다. 이 표기법은 순서가 지정된 쌍과 유사하지만 이 컨텍스트에서 작업 중인 간격을 나타냅니다.
[5, 90] 엔드포인트가 포함된 5 <= x <= 90으로 해석됩니다.
(12, 20] 12 &x x <= 20으로 해석됩니다. 여기서 12는 포함되지 않지만 20은 포함됩니다.
[12, 20) 12는 포함되지만 20은 포함되지 않는 12 <= x < 20으로 해석됩니다.
(500, inf) x > 500으로 해석됩니다. 여기서 500은 포함되지 않으며 무한대는 항상 'open'(포함되지 않음)으로 표시됩니다. inf은 생략할 수 있으며 (500,)과 같이 입력할 수 있습니다.
(-inf, 10] x<= 10으로 해석됩니다. 여기서 10은 포함되고, 무한대는 항상 'open'(포함되지 않음)으로 표시됩니다. inf은 생략할 수 있으며 (,10]과 같이 입력할 수 있습니다.
[0,9],[20,29] 0 이상 99 이하의 숫자 또는 20 이상 29 이하의 숫자
[0,10],20 0~10 또는 20
NOT (3,12) x 3x 12로 해석됨
NOT 10,[1,5) 10을 제외한 모든 숫자(1은 포함, 5는 제외)

위치

위치 필터 표현식은 위도와 경도를 기반으로 하지만 일부 자연어를 사용하여 검색을 제한할 상자와 원을 정의할 수 있습니다.

설명
36.97, -122.03 위치는 정확하게 위도 36.97, 경도 122.03입니다.
40 miles from 36.97, -122.03 위도 36.97도, 경도 -122.03에서 40마일 이내인 위치
inside box from 72.33, -173.14 to 14.39, -61.70 위치는 북서쪽 모서리가 위도 72.33, 경도 -173.14, 남동쪽 모서리가 위도 14.39, 경도 -61.70인 상자에 있습니다.
NOT NULL (works the same as -NULL) 위치에 null이 아닌 위도와 null이 아닌 경도가 있습니다 (LookML 필터 표현식의 일부로 사용되는 경우 filters 문서 페이지에 표시된 대로 NOT NULL를 따옴표로 묶음).
-NULL (works the same as NOT NULL) 위치에 null이 아닌 위도와 null이 아닌 경도가 있습니다 (LookML 필터 표현식의 일부로 사용되는 경우 filters 문서 페이지에 표시된 대로 -NULL를 따옴표로 묶음).
NULL 위치의 null 위도 또는 경도가 둘 다 있거나 둘 다 null임 (LookML 필터 표현식의 일부로 사용되는 경우 filters 문서 페이지에 표시된 대로 NULL를 따옴표로 묶음)

지원되는 측정 단위

특정 위치 주변 지역을 필터링하려면 다음 단위를 사용하세요.

  • 미터
  • 킬로미터
  • 마일

단수 측정 단위는 지원되지 않습니다. 예를 들어 1마일 반경 필터링은 within 1 miles of 36.97, -122.03로 작성해야 합니다.

사용자 속성 값

필터 표현식에서 사용자 속성 값을 사용하려면 _user_attributes 액체 변수를 사용하여 사용자 속성을 참조합니다.

{{ _user_attributes['name_of_attribute'] }}

예를 들어 salesforce_username 사용자 속성 값에 sf_ 접두사를 적용해야 하는데 값이 데이터베이스에 저장되기 때문입니다. 사용자 속성 값에 프리픽스를 추가하려면 다음과 같이 관련 필드에 matchs (advanced) 필터를 추가하고 필터 표현식에서 _user_attributes Liquid 변수를 다음과 같이 사용합니다.


sf_{{_user_attributes['salesforce_username']}}

동일한 패턴을 사용하여 사용자 속성을 LookML 대시보드 필터대시보드 요소 필터에 삽입할 수 있습니다.