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 16.2 a novější
Azure Databricks podporuje syntaxi kanálu SQL, která umožňuje vytvářet dotazy z kombinací zřetězených operátorů.
- Jakýkoli dotaz může obsahovat nula nebo více rourových operátorů jako příponu, označenou znakem svislé čáry
|>. - Každá operace kanálu začíná jedním nebo více klíčovými slovy SQL, za kterými následuje vlastní gramatika.
- Operátory se můžou použít v libovolném pořadí a libovolně často.
- K zahájení kanálu se obvykle používá FROM relation_name, ale jakýkoli dotaz může kanál spustit.
Syntaxe
{ FROM | TABLE } relation_name { |> piped_operation } [ ...]
Parametry
-
Identifikuje tabulku nebo zobrazení, které se má použít jako vstup kanálu. Pokud tabulku nebo zobrazení nenajdete, Azure Databricks vyvolá chybu TABLE_OR_VIEW_NOT_FOUND.
-
Operace využívající předchozí operaci dotazu nebo kanálu. Podrobnosti najdete v piped_operation.
Příklad
Toto je dotaz 13 z srovnávacího testu TPC-H napsaného v ANSI SQL:
> SELECT c_count, COUNT(*) AS custdist
FROM
(SELECT c_custkey, COUNT(o_orderkey) c_count
FROM customer
LEFT OUTER JOIN orders ON c_custkey = o_custkey
AND o_comment NOT LIKE '%unusual%packages%'
GROUP BY c_custkey
) AS c_orders
GROUP BY c_count
ORDER BY custdist DESC, c_count DESC;
Pokud chcete napsat stejnou logiku pomocí operátorů kanálu SQL, můžete ji vyjádřit takto:
> FROM customer
|> LEFT OUTER JOIN orders ON c_custkey = o_custkey
AND o_comment NOT LIKE '%unusual%packages%'
|> AGGREGATE COUNT(o_orderkey) c_count
GROUP BY c_custkey
|> AGGREGATE COUNT(*) AS custdist
GROUP BY c_count
|> ORDER BY custdist DESC, c_count DESC;