使用できる SQL 関数

プライバシー上の理由から、ADH で使用できる SQL 関数には制限があります。

スカラー関数

以下を除くすべてのスカラー関数を使用できます。

  • ERROR
  • ST_AREA
  • ST_ASBINARY
  • ST_ASGEOJSON
  • ST_ASTEXT
  • ST_BOUNDARY
  • ST_CENTROID
  • ST_CENTROID_AGG
  • ST_CLOSESTPOINT
  • ST_CLUSTERDBSCAN
  • ST_CONTAINS
  • ST_CONVEXHULL
  • ST_COVEREDBY
  • ST_COVERS
  • ST_DIFFERENCE
  • ST_DIMENSION
  • ST_DISJOINT
  • ST_DISTANCE
  • ST_DUMP
  • ST_DWITHIN
  • ST_EQUALS
  • ST_GEOGFROMGEOJSON
  • ST_GEOGFROMTEXT
  • ST_GEOGFROMWKB
  • ST_GEOGPOINT
  • ST_GEOGPOINTFROMGEOHASH
  • ST_GEOHASH
  • ST_INTERSECTION
  • ST_INTERSECTS
  • ST_INTERSECTSBOX
  • ST_ISCOLLECTION
  • ST_ISEMPTY
  • ST_LENGTH
  • ST_MAKELINE
  • ST_MAKEPOLYGON
  • ST_MAKEPOLYGONORIENTED
  • ST_MAXDISTANCE
  • ST_NPOINTS
  • ST_NUMPOINTS
  • ST_PERIMETER
  • ST_SIMPLIFY
  • ST_SNAPTOGRID
  • ST_TOUCHES
  • ST_UNION
  • ST_UNION_AGG
  • ST_WITHIN
  • ST_X
  • ST_Y

分析クエリ

集計分析クエリでは、複数のユーザーのデータを結合する関数が制限されます。1 人のユーザーのデータを処理する場合、集計関数と分析関数はすべて使用できます。詳しくは、後述のユーザー単位の集計をご覧ください。

集計関数

関数 使用可 / 使用不可
ANY_VALUE
APPROX_QUANTILES いいえ
APPROX_TOP_COUNT ×
APPROX_TOP_SUM ×
ARRAY_AGG ×
ARRAY_CONCAT_AGG ×
AVG はい
BIT_AND いいえ
BIT_OR ×
BIT_XOR ×
COUNT
COUNTIF
LOGICAL_AND
LOGICAL_OR
MAX
MIN
SUM
CORR
COVAR_POP
COVAR_SAMP
STDDEV_POP
STDDEV_SAMP
STDDEV はい
STRING_AGG ×
VAR_POP
VAR_SAMP
VARIANCE
APPROX_COUNT_DISTINCT

分析関数

分析関数はすべて制限されています。

HyperLogLog++ 関数

Ads Data Hub は、HyperLogLog++(HLL++)関数に対応しています。ただし、この関数ではより制限の多い特別なデータ型が使用されます。

サポートされている型

説明
ADH.USER_HLL ADH.USER_ID 型の値から集計したスケッチ
ADH.BYTE_HLL ID 以外の型の値から集計したスケッチ

上記の型は、カーディナリティ推定への統合と抽出をサポートしていますが、他の型への直接コンバージョンはサポートしていません。Ads Data Hub から直接エクスポートすることができないため、HLL_COUNT.EXTRACT または HLL_COUNT.MERGE を使用してからクエリの出力を行う必要があります。

HLL スケッチにより、複数の集計レイヤにまたがるカーディナリティ推定が可能になりますが、Ads Data Hub では、単一レイヤの COUNT(DISTINCT) よりも大幅にパフォーマンスが向上するわけではないことにご注意ください。

サポートされる関数

関数名 サポートされている型 戻り値の型
HLL_COUNT.EXTRACT ADH.USER_HLLADH.BYTE_HLL INT64
HLL_COUNT.INIT サポートされているすべての標準型ADH.USER_ID ADH.USER_HLLADH.USER_ID 入力用、それ以外は ADH.BYTE_HLL
HLL_COUNT.INITNT.MERGE ADH.USER_HLLADH.BYTE_HLL INT64
HLL_COUNT.MERGE_PARTIAL ADH.USER_HLLADH.BYTE_HLL 入力型と同じ

制限事項

ノイズ インジェクション: ノイズ インジェクションを使用してクエリを実行する場合、HLL++ 関数はサポートされません。

ユーザー単位の集計

user_id を基準にグループ化またはパーティショニングを行う SELECT ステートメント内の集計関数と分析関数は、すべて使用できます。そのためには、次の例のように、user_id に基づいて結合することで、前の結合でユーザー単位のデータが保持されていることを明示する必要があります。

CREATE TABLE paths AS (
SELECT ARRAY_AGG(campaign_id ORDER BY query_id.time_usec) AS path
FROM
  adh.google_ads_impressions
  LEFT JOIN adh.google_ads_clicks
    USING(query_id, user_id)
GROUP BY user_id)

ユーザーリストのクエリ

ユーザーリストのクエリでは、集計関数を使用できますが、分析関数はサポートされていません。