توابع مجاز SQL

به دلایل حفظ حریم خصوصی، عملکردهای SQL را که می‌توانید در ADH استفاده کنید، محدود می‌کنیم.

توابع اسکالر

همه توابع اسکالر به جز موارد زیر مجاز هستند:

  • 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

پرس و جوهای تجزیه و تحلیل

برای جستارهای تجزیه و تحلیل انبوه، ما توابعی را که داده‌های چند کاربر را ترکیب می‌کنند، محدود می‌کنیم. همه توابع انبوه و تحلیلی هنگام پردازش داده های یک کاربر مجاز هستند. برای جزئیات بیشتر به مجموعه‌های سطح کاربر در زیر مراجعه کنید.

توابع جمع

عملکرد مجاز؟
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 آره

توابع تحلیلی

همه توابع تحلیلی محدود شده اند.

تجمعات در سطح کاربر

ما به همه توابع انبوه و تحلیلی در عبارات SELECT اجازه می دهیم که توسط user_id گروه یا پارتیشن بندی شوند. برای این کار، هر اتصال قبلی باید روشن کند که داده‌ها با پیوستن به user_id در سطح کاربر نگهداری می‌شوند، مانند این مثال:

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

اگر این امکان پذیر نیست، زیرا شناسه ها جدا هستند و به هم نمی پیوندند، آن پرس و جو باید بر اساس همه شناسه های مستقل گروه بندی یا پارتیشن بندی شود، مانند این مثال:

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

پرس و جوهای لیست کاربران

در جستارهای فهرست کاربر، توابع انبوه مجاز هستند و توابع تحلیلی پشتیبانی نمی شوند.