フィルタ式は、Looker クエリをフィルタリングする高度な方法です。このページではフィルタ式の作成方法を紹介します。Looker の Explore セクションでは、フィルタを追加して [matchs (advanced)] オプションを選択するとフィルタ式を使用できます。また、フィルタ式は、LookML で filter
パラメータを指定できる要素に対しても使用されます。
文字列
例 | 説明 |
---|---|
FOO |
「FOO」と完全に一致する |
FOO,BAR |
「FOO」または「BAR」と完全に一致する |
%FOO% |
「FOO」が含まれ、「buffoon」と「fast food」に一致する |
FOO% |
「FOO」で始まり、「foolish」と「food」に一致しますが、「buffoon」や「fast food」には一致しない |
%FOO |
「FOO」で終わり、「buffoo」と「fast foo」と一致しますが、「buffoon」や「fast food」には一致しない |
F%OD |
「F」で始まり「OD」で終わり、「fast food」と一致する |
EMPTY |
文字列が空(文字がゼロ)であるか、Null(値なし)である |
NULL |
値は null である(LookML フィルタ式の一部として使用される場合、filters のドキュメント ページで示されているように NULL を引用符で囲みます) |
-FOO |
「FOO」と等しくない(「FOO」以外の値である)。「pizza」、「trash」、「fun」に一致するが「foo」に一致しない |
-FOO,-BAR |
「FOO」または「BAR」のどちらとも等しくない。「FOO」と「BAR」以外の値と一致する |
-%FOO% |
「FOO」を含まない、「buffoon」や「fast food」と一致しない |
-FOO% |
先頭が「FOO」ではなく、「foolish」や「food」と一致しない |
-%FOO |
末尾が「FOO」ではなく、「buffoo」や「fast foo」と一致しない |
-EMPTY |
文字列が空ではない(1文字以上である) |
-NULL |
列の値が NULL ではない(LookML フィルタ式の一部として使用する場合は、filters のドキュメント ページで示されているように -NULL を引用符で囲みます) |
FOO%,BAR |
「FOO」で始まっている、または「BAR」と完全に一致する。「food」に一致し、「bar」には一致しているが「barfood」には一致しない |
FOO%,-FOOD |
先頭は「FOO」だが、「FOOD」ではない |
_UF |
任意の 1 文字の後に「UF」があり、「buffoon」に一致する |
文字列フィルタに特殊文字を含める
文字列フィルタに特殊文字を含めるには、次のルールに注意します。
"
、%
、_
を含めるには、エスケープ文字^
を前に付けます。例:^"
、^%
、^_
- 先頭に
-
を含めるには、^-
としてエスケープします。これは、-
が先頭文字である場合にのみ必要です。-
が文字列内にある場合、エスケープする必要はありません。 ^
を含めるには、^^
としてエスケープします。- 通常の UI 文字列フィルタにカンマを含めるには、カンマの前にバックスラッシュ文字
\
を付けます。例:Santa Cruz\, CA
- フィルタの matchs(advanced)オプションにカンマを含めるには、カンマの前にエスケープ文字
^
を付けます。例:Santa Cruz^, CA
。 - LookML のフィルタ式にカンマを含めるには、カンマの前にエスケープ文字
^
を付けます。例:
field: filtered_count {
type: count
filters: [city: "Santa Cruz^, CA"]
}
日時
Lookerの日付フィルタリングでは、SQLデータ関数の代わりに英語の語句を使用することができます。
日付と時刻フィルタの基本構造
次の例では、
{n}
は整数です。{interval}
は、時間、日、週、月などの時間増分です。{interval}
に部分的な期間が含まれるか、完全な期間のみが含まれるかは、使用する語句によって決まります。たとえば、式3 days
には、今日(部分的な 1 日)と直前の 2 日間が含まれます。式3 days ago for 3 days
には、直前の丸 3 日間が含まれ、今日(部分的な 1 日)は除外されます。詳細については、相対日付のセクションをご覧ください。{time}
では、YYYY-MM-DD HH:MM:SS または YYYY/MM/DD HH:MM:SS という書式の時間か、YYYY-MM-DD または YYYY/MM/DD という書式の日付を指定できます。YYYY-MM-DDの書式を使用する場合、月と日を必ず2桁で入力します。例:2016-01。 月または日を1桁にすると、日付ではなくオフセットと解釈されます。 例えば、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 年 1 月 1 日より前のすべての日付のデータを返しますが、2018 年 1 月 1 日以降のデータは返しません。 |
after {time} |
after 2018-10-05 |
after には指定した時刻が含まれます。したがって、式 after 2018-10-05 は 2018 年 10 月 5 日のデータと、それ以降のすべての日付からデータを返します。 |
{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 年 5 月 18 日 12:00:00」から「2018 年 5 月 18 日 13:59:59」までのデータを返します。 |
this {interval} to {interval} |
this year to second |
各期間の開始時点が使用されます。 たとえば、式 this year to second は、クエリの実行年の初日からクエリ実行の 2 年目の最初までのデータを返します。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 は直近の月曜日を返します。この場合、before キーワードと after キーワードで {day of week} を使用することもできます。たとえば、式 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 キーワードは、上記の間隔のうち 1 つを必要とし、他の間隔では動作しないという点で特異です。 |
{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 ロジックを取得するには: 複数の日付または時間フィルタに条件を 1 つずつ入力します。たとえば、[作成日] フィルタに
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日午前0時から2018年5月12日午後11時59分59秒まで |
after 2018/05/10 |
2018/05/10 00:00:00以降 |
before 2018/05/10 |
2018年5月10日午前0時より前 |
2018/05 |
2018年5月中 |
2018/05 for 2 months |
2018年5月および6月中 |
2018/05/10 05:00 for 5 hours |
2018年5月10日午前5時から2018年5月10日午前9時59分59秒まで |
2018/05/10 for 5 months |
2018年5月10日午前0時から2018年10月9日午後11時59分59秒まで |
2018 |
2018年中(2018年1月1日の午前0時から2018年12月31日の午後11時59分59秒まで) |
FY2018 |
2018 年に始まる会計年度中(Looker デベロッパーが 4 月に会計年度を開始すると指定した場合、2018 年 4 月 1 日午前 0 時から 2019 年 3 月 31 日午後 11 時 59 分まで) |
FY2018-Q1 |
2018 年に始まる会計年度の第一四半期(Looker デベロッパーが 4 月に会計年度を開始すると指定した場合、2018 年 4 月 1 日午前 0 時から 2018 年 6 月 30 日午後 11 時 59 分 59 秒まで) |
相対日付
相対日付を使って、現在の日付に対して変化する日付の値でクエリを作成することができます。 実行するごとに更新されるクエリを作成する場合に役立ちます。
以下のすべての例では、今日を 2018 年 5 月 18 日金曜日、午後 6 時 30 分 2 秒と仮定しています。Looker では、week_start_day
で設定を変更しない限り、週は月曜日から始まります。
秒
例 | 説明 |
---|---|
1 second |
現在の秒(2018年5月18日午後6時30分2秒) |
60 seconds |
60秒に対して60秒前(2018年5月18日午後6時29分2秒から2018年5月18日午後6時30分1秒まで) |
60 seconds ago for 1 second |
60秒前から1秒間(2018年5月18日午後6時29分2秒) |
分
例 | 説明 |
---|---|
1 minute |
現在時刻(2018年5月18日午後6時30分から午後6時30分59秒まで) |
60 minutes |
60分前から60分間(2018年5月18日午後5時31分から2018年5時18分午後6時30分59秒まで) |
60 minutes ago for 1 minute |
60分前から1分間(2018年5月18日午後5時30分から2018年5時18分午後5時30分59秒まで) |
時間
例 | 説明 |
---|---|
1 hour |
現在時刻(2018年5月18日午後6時から2018年5月18日午後6時59分まで) |
24 hours |
24時間前の同じ時刻から24時間(2018年5月17日午後7時から2018年5月18日午後6時59分まで) |
24 hours ago for 1 hour |
24時間前の同じ時刻から1時間(2018年5月17日午後6時から2018年5月17日午後6時59分まで) |
日
例 | 説明 |
---|---|
today |
今日(2018年5月18日午前0時から2018年5月18日午後11時59分まで) |
2 days |
昨日と今日(2018年5月17日午前0時から2018年5月18日午後11時59分まで) |
1 day ago |
昨日のみ(2018年5月17日午前0時から2018年5月17日午後11時59分まで) |
7 days ago for 7 days |
過去7日間(2018年5月11日午前0時から2018年5月17日午後11時59分まで) |
today for 7 days |
今日の深夜から7日間(2018年5月18日午前0時から2018年5月24日午後11時59分まで) |
last 3 days |
2日前から今日の終わりまで(2018年5月16日午前0時から2018年5月18日午後11時59分まで) |
7 days from now |
7日後(2018 年 5 月 18 日午前 0 時から 2018 年 5 月 25 日午後 11 時 59 分まで) |
週
例 | 説明 |
---|---|
1 week |
今週の始まりから終わりまで(2018年5月14日午前0時から2018年5月20日午後11時59分まで) |
this week |
今週の始まりから終わりまで(2018年5月14日午前0時から2018年5月20日午後11時59分まで) |
before this week |
今週が始まるまで(2018年5月14日午前0時より前) |
after this week |
今週が始まってから(2018年5月14日午前0時以降) |
next week |
次の月曜日から1週間(2018年5月21日午前0時から2018年5月27日午後11時59分まで) |
2 weeks |
1週間前の月曜日から2週間(2018年5月7日午前0時から2018年5月20日午後11時59分まで) |
last week |
「1 週間前」と同義 |
1 week ago |
1週間前の月曜日から1週間(2018年5月7日午前0時から2018年5月13日午後11時59分まで) |
月
例 | 説明 |
---|---|
1 month |
今月(2018年5月1日午前0時から2018年5月31日午後11時59分まで) |
this month |
「0 か月前」と同義(2018 年 5 月 1 日午前 0 時から 2018 年 5 月 31 日午後 11 時 59 分まで) |
2 months |
過去2カ月(2018年4月1日午前0時から2018年5月31日午後11時59分まで) |
last month |
2018年4月全体 |
2 months ago |
2018年3月全体 |
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年4月1日午前0時から2018年6月30日午後11時59分まで) |
this quarter |
「0 四半期前」と同義(2018 年 4 月 1 日午前 0 時から 2018 年 6 月 30 日午後 11 時 59 分まで) |
2 quarters |
過去2四半期(2018年1月1日午前0時から2018年6月30日午後11時59分まで) |
last quarter |
第1四半期全体(2018年1月1日午前0時から2018年3月31日午後11時59分まで) |
2 quarters ago |
昨年の第4四半期全体(2017年10月1日午前0時から2017年12月31日午後11時59分まで) |
before 2 quarters ago |
昨年の第4四半期より前 |
next quarter |
次の四半期全体(2018年7月1日午前0時から2018年9月30日午後11時59分まで) |
2018-07-01 for 1 quarter |
第3四半期全体(2018年7月1日午前0時から2018年9月30日午後11時59分まで) |
2018-Q4 |
第4四半期全体(2018年10月1日午前0時から2018年12月31日午後11時59分まで) |
年
例 | 説明 |
---|---|
1 year |
今年全体(2018年1月1日午前0時から2018年12月31日午後11時59分まで) |
this year |
今年全体(2018年1月1日午前0時から2018年12月31日午後11時59分まで) |
next year |
来年全体(2019年1月1日午前0時から2019年12月31日午後11時59分まで) |
2 years |
過去2年間(2017年1月1日午前0時から2018年12月31日午後11時59分まで) |
last year |
2017年全体 |
2 years ago |
2016年全体 |
before 2 years ago |
2016年1月1日より前(2016年1月1日から2016年5月18日までの日は含まれません) |
ブール値
Looker で真/偽タイプの値をフィルタリングするには、どのようなタイプの真/偽値を扱っているのかを知る必要があります。
例 | 説明 |
---|---|
yes または Yes |
フィールドは真に評価されます
Looker デベロッパー: type: yesno ディメンションの場合は小文字を使用し、filters パラメータ(メジャーで使用されるまたは always_filter で使用されるパラメータなど)は、大文字を使用します。 |
no または No |
フィールドは偽に評価されます
Looker デベロッパー: type: yesno ディメンションの場合は小文字を使用し、filters パラメータ(メジャーで使用されるまたは always_filter で使用されるパラメータなど)は、大文字を使用します。 |
TRUE |
真値を含むフィールド(Booleanデータベース値を含むフィールド) |
FALSE |
偽値を含むフィールド(Booleanデータベース値を含むフィールド) |
数値
数値のフィルタでは、自然言語式(3 to 10
など)と関係演算子(>20
など)の両方がサポートされます。Looker では OR
演算子がサポートされており、複数のフィルタ範囲(3 to 10 OR 30 to 100
など)を表現できます。AND
演算子を使用して、関係演算子(>=3 AND <=10
など)で数値範囲を表現し、範囲を指定できます。数値のフィルタでは、代数区間表記を使用して数値フィールドをフィルタリングすることもできます。
例 | 説明 |
---|---|
5 |
5 |
NOT 5
<>5
!=5 |
5を除くすべての値 |
1, 3, 5, 7 |
1、3、5、7のいずれかの値 |
NOT 66, 99, 4 |
66、99、4以外の値 |
>1 AND <100, NOT 2 |
1 より大きく 100 未満(2 ではない) |
NOT >1, 2, <100 |
1 以下、2 ではなく、100 以上の値(Looker はこれが不可能な条件であることを認識しており、SQL「IS NULL」と記述します) |
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と1000の間(両端を含む) |
NULL |
データが含まれていない(LookML フィルタ式の一部として使用する場合は、filters のドキュメント ページで示されているように NULL を引用符で囲みます) |
NOT NULL |
データが含まれている(LookML フィルタ式の一部として使用する場合は、filters のドキュメント ページで示されているように NOT NULL を引用符で囲みます) |
(1, 7) |
エンドポイントが含まれない 1 < x < 7 と解釈されます。この表記法は順序対に似ており、この場合作業を行っている間隔を指す。 |
[5, 90] |
エンドポイントが含まれている 5 <= x <= 90 と解釈されます |
(12, 20] |
12 < x <= 20 と解釈されます。12 は含まないが、20 は含まれます |
[12, 20) |
12 <= x < 20 と解釈されます。12 は含まれますが、20 は含まれません |
(500, inf) |
x > 500 と解釈されます。500 は含まれず、無限大は常に「オープン」(含まれない)として表現されます。inf を省略し、(500, inf) を (500,) のように記述できます。 |
(-inf, 10] |
x <= 10 と解釈されます。10 が含まれ、無限大は常に「オープン」(含まれない)として表現されます。inf を省略し、(-inf, 10] を (,10] のように記述できます。 |
[0,9],[20,29] |
0と9の間(両端を含む)、または20から29まで(両端を含む)の数値 |
[0,10],20 |
0から10まで(両端を含む)、または20 |
NOT (3,12) |
x < 3 および x > 12 と解釈されます |
場所
場所のフィルタ式は、経度と緯度に基づいていますが、一定の自然言語を受け入れ、検索を制限する四角形や円を定義することができます。
例 | 説明 |
---|---|
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
Liquid 変数でユーザー属性を参照します。
{{ _user_attributes['name_of_attribute'] }}
たとえば、salesforce_username
ユーザー属性の値に sf_
接頭辞を適用する必要があるとします。この方法でデータベースに値を格納するためです。ユーザー属性の値に接頭辞を追加するには、関連するフィールドに一致(高度)フィルタを追加し、次のようにフィルタ式で _user_attributes
Liquid 変数を使用します。
sf_{{_user_attributes['salesforce_username']}}
同じパターンを使用して、LookML のダッシュボード フィルタとダッシュボードの要素フィルタにユーザー属性を挿入できます。