Sdílet prostřednictvím


Syntaxe kanálu SQL

platí pro:zaškrtněte políčko Ano Databricks SQL zaškrtněte políčko Ano 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

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;