Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime
Vrátí hodnotu výrazu přidruženého k nejmenší hodnotě druhého výrazu ve skupině. S volitelným třetím argumentem vrátí pole až hodnoty limit odpovídající nejmenším hodnotám výrazu řazení. Sémantika je stejná jako max_by agregační funkce s opačným pořadím.
Syntaxe
min_by(expr, ordExpr) [FILTER ( WHERE cond ) ]
Platí pro:
Databricks SQL
Databricks Runtime 18.1 a vyšší
min_by(expr, ordExpr, limit) [FILTER ( WHERE cond ) ]
Tuto funkci lze také vyvolat jako funkci okna pomocí klauzule OVER.
Argumenty
- výraz: Výraz, jehož hodnota má být vrácena. Může to být libovolný datový typ.
- ordExpr: Výraz použitý k určení minimální hodnoty (klíč řazení). Musí být seřazený typ.
-
limit: (Volitelné) Hodnota
INTpředstavující maximální počet hodnot, které se mají vrátit. Musí být větší než 0 a menší nebo rovno 100 000. Pokud je tato funkce za předpokladu, vrátí matici až hodnotlimit. - cond: Volitelný logický výraz filtrující řádky použité pro agregaci.
Návraty
Bez limit: typ výsledku odpovídá typu expr. Pokud má více řádků stejnou minimální hodnotu ordExpr, výsledek není deterministický.
S limit: ARRAY hodnoty, jejichž typ prvku odpovídá typu expr. Pole obsahuje až limit prvky. Hodnoty odpovídající NULL řazení nejsou zahrnuty. Pokud jsou NULLvšechny hodnoty řazení , výsledek je NULL. Pokud více řádků sdílí stejné nejmenší hodnoty, funkce není deterministická.
Poznámka
U některých STRING kolací, například UTF8_LCASE, může být výsledek také ne deterministický.
Příklady
> SELECT min_by(x, y) FROM VALUES (('a', 10)), (('b', 50)), (('c', 20)) AS tab(x, y);
a
> SELECT min_by(x, y, 2) FROM VALUES (('a', 10)), (('b', 50)), (('c', 20)) AS tab(x, y);
[a, c]
> SELECT min_by(x, y COLLATE UTF8_LCASE) FROM VALUES (('a', 'X')), (('b', 'x')), (('c', 'Z')) AS tab(x, y);
a (or b)