İzin verilen SQL işlevleri

Gizlilik nedeniyle, ADH'de kullanabileceğiniz SQL işlevlerini sınırlandırırız.

Skalar işlevler

Aşağıdakiler hariç tüm skalar işlevlere izin verilir:

  • 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

Analiz sorguları

Toplu analiz sorguları için, birden fazla kullanıcının verilerini birleştiren işlevleri kısıtlarız. Tek bir kullanıcı verisi işlenirken tüm toplu ve analitik işlevlere izin verilir. Ayrıntılar için aşağıdaki Kullanıcı düzeyinde toplama bölümüne bakın.

Toplama işlevleri

İşlev İzin veriliyor mu?
ANY_VALUE Evet
APPROX_QUANTILES Hayır
APPROX_TOP_COUNT Hayır
APPROX_TOP_SUM Hayır
ARRAY_AGG Hayır
ARRAY_CONCAT_AGG Hayır
AVG Evet
BIT_AND Hayır
BIT_OR Hayır
BIT_XOR Hayır
COUNT Evet
COUNTIF Evet
LOGICAL_AND Evet
LOGICAL_OR Evet
MAX Evet
MIN Evet
SUM Evet
CORR Evet
COVAR_POP Evet
COVAR_SAMP Evet
STDDEV_POP Evet
STDDEV_SAMP Evet
STDDEV Evet
STRING_AGG Hayır
VAR_POP Evet
VAR_SAMP Evet
VARIANCE Evet
APPROX_COUNT_DISTINCT Evet

Analitik işlevler

Tüm analiz işlevleri kısıtlanmıştır.

Kullanıcı düzeyinde toplama

SELECT ifadelerinde user_id tarafından gruplandırılan veya bölümlenen tüm toplu ve analitik işlevlere izin verilir. Bunu gerçekleştirmek için, önceki tüm birleştirme işlemleri, aşağıdaki örnekte gösterildiği gibi user_id üzerinden katılarak kullanıcıların kullanıcı düzeyinde tutulduğunu açıkça göstermelidir:

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

Kimlikler ayrı olduğu ve katılmadığı için bu mümkün değilse sorgu, aşağıdaki örnekte olduğu gibi, bağımsız tüm kimliklere göre gruplandırılmalıdır:

SELECT
  a.user_id AS user_a,
  b.user_id AS user_b,
  ARRAY_AGG(DISTINCT campaign_id) campaigns
FROM
  adh.google_ads_impressions a
  JOIN adh.google_ads_impressions b USING (campaign_id)
GROUP BY 1, 2

Kullanıcı listesi sorguları

Kullanıcı listesi sorgularında, toplama işlevlerine izin verilir ve analiz işlevleri desteklenmez.