Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 10.4 LTS ve üzeri
En sık oluşan öğe değerlerinin yanı sıra, bir k içindeki yaklaşık sayılarıyla birlikte ilk expr öğe değerlerini verir.
Sözdizimi
approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]
Bu işlev, yan tümcesi kullanılarak OVER pencere işlevi olarak da çağrılabilir.
Tartışmalar
-
expr: STRING, BOOLEAN, DATE, TIMESTAMP veya sayısal türün ifadesi. -
k: 0'dan büyük, isteğe bağlı bir tam sayı sabiti. Belirtilmezsek, varsayılan olarak olur5. -
maxItemsTracked: İsteğe bağlı,kdeğerine eşit veya daha büyük bir Tamsayı değişmez değeri. BelirtilmezsemaxItemsTracked, varsayılan olarak olur10000. -
cond: İsteğe bağlı bir boole ifadesi, toplama için kullanılan satırları filtreler.
İadeler
Sonuçlar STRUCT türünde bir ARRAY olarak döndürülür; burada her STRUCT değeri için bir item alanı (özgün giriş türüyle) ve yaklaşık yineleme sayısıyla count alanı (LONG türünde) içerir. Dizi azalan düzende sıralanır count .
Toplama işlevi, bir ifadede en sık rastlanan k öğe değerlerini ve bunların yaklaşık sayımlarını expr getirir. Her sayıdaki hata 2.0 * numRows / maxItemsTracked kadar olabilir; burada numRows toplam satır sayısıdır. Daha yüksek maxItemsTracked değerleri, artan bellek kullanımı maliyetinde daha iyi doğruluk sağlar.
Ayrı öğelerden daha maxItemsTracked az öğe içeren ifadeler, tam öğe sayılarını verir. Sonuçlar, kendi öğesi olarak NULL değerlerini içerir.
Yaygın hata koşulları
- APPROX_TOP_K_NON_POSITIVE_ARG
- TAHMİNİ_EN_YÜKSEK_K_EN_FAZLA_İZLENEN_ÖĞE_SINIRI_AŞILDI
- TAHMİNİ_EN_İYİ_K_MAX_GÖZLENEN_ÖĞE_K'DEN_AZ
Örnekler
> SELECT approx_top_k(expr) FROM VALUES (0), (0), (1), (1), (2), (3), (4), (4) AS tab(expr);
[{'item':4,'count':2},{'item':1,'count':2},{'item':0,'count':2},{'item':3,'count':1},{'item':2,'count':1}]
> SELECT approx_top_k(expr, 2) FROM VALUES ('a'), ('b'), ('c'), ('c'), ('c'), ('c'), ('d'), ('d') AS tab(expr);
[{'item':'c','count':4},{'item':'d','count':2}]
> SELECT approx_top_k(expr, 10, 100) FROM VALUES (0), (1), (1), (2), (2), (2) AS tab(expr);
[{'item':2,'count':3},{'item':1,'count':2},{'item':0,'count':1}]