İzin verilen SQL işlevleri

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

Skaler işlevler

Aşağıdakiler hariç tüm skaler 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ının 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

Analiz işlevleri

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 birleşerek verilerin kullanıcı düzeyinde tutulduğunu açıkça belirtmelidir:

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 birleşmediği için bu mümkün değilse sorgu, tüm bağımsız kimliklere göre (örneğin, aşağıdaki örnekte) gruplanır veya bölümlenir:

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.