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
Gruptaki ikinci bir ifadenin en büyük değeriyle ilişkili bir ifadenin değerini döndürür. İsteğe bağlı üçüncü bağımsız değişkenle, sıralama ifadesinin en büyük değerlerine karşılık gelen en çok limit değer içeren bir dizi döndürür.
Sözdizimi
max_by(expr, ordExpr) [FILTER ( WHERE cond ) ]
Şunun için geçerlidir:
Databricks SQL
Databricks Runtime 18.1 ve üzeri
max_by(expr, ordExpr, limit) [FILTER ( WHERE cond ) ]
Bu işlev, yan tümcesi kullanılarak OVER olarak da çağrılabilir.
Bağımsız değişkenler
- expr: Değeri döndürülecek ifade. Herhangi bir veri türü olabilir.
- ordExpr: En büyük değeri (sıralama anahtarı) belirlemek için kullanılan ifade. Sipariş edilebilir bir tür olmalıdır.
-
limit: (İsteğe bağlı)
INTDöndürülecek en fazla değer sayısını temsil eden değer. 0'dan büyük ve 100.000'den küçük veya buna eşit olmalıdır. Sağlandığında, işlev en çoklimitdeğer içeren bir dizi döndürür. - cond: Toplama için kullanılan satırları filtreleyerek isteğe bağlı bir boole ifadesi.
Döndürülenler
olmadan limit, sonuç türü türüyle eşleşir expr. Birden çok satır aynı en yüksek değere ordExprsahipse sonuç belirleyici değildir.
ile limit: ARRAY öğesi türü türüyle eşleşen değerlerden biri expr. Dizi en çok limit öğe içerir. Sıralamalara NULL karşılık gelen değerler dahil değildir. Tüm sıralama değerleri ise NULL, sonuç olur NULL. Birden çok satır aynı en büyük değerleri paylaşıyorsa işlev belirleyici değildir.
Not
STRINGgibi belirli UTF8_LCASE harmanlamaları için sonuç da belirleyici olmayabilir.
Örnekler
> SELECT max_by(x, y, 2) FROM VALUES (('a', 10)), (('b', 50)), (('c', 20)) AS tab(x, y);
[b, c]
-- Return top 2 values by ordering expression
> SELECT year, max_by(course, earnings, 2) FROM data GROUP BY year;
year: 2012, max_by(course, earnings, 2): [Java, c]
> SELECT max_by(x, y COLLATE UTF8_LCASE) FROM VALUES (('a', 'X')), (('b', 'x')), (('c', 'v')) AS tab(x, y);
a (or b)