Share via


QUALIFY 句

適用対象:check marked yes Databricks SQL のチェックをオン Databricks Runtime 10.4 LTS 以降。

ウィンドウ関数の結果をフィルター処理します。 QUALIFY を使用するには、SELECT リストまたは QUALIFY 句に少なくとも 1 つのウィンドウ関数が存在する必要があります。

構文

QUALIFY boolean_expression

パラメーター

  • boolean_expression

    結果の型 boolean に対して評価される任意の式。 論理演算子 (ANDOR) を使用して、2 つ以上の式を組み合わせることができます。

    QUALIFY 句で指定された式に集計関数を含めることはできません。

CREATE TABLE dealer (id INT, city STRING, car_model STRING, quantity INT);
INSERT INTO dealer VALUES
    (100, 'Fremont', 'Honda Civic', 10),
    (100, 'Fremont', 'Honda Accord', 15),
    (100, 'Fremont', 'Honda CRV', 7),
    (200, 'Dublin', 'Honda Civic', 20),
    (200, 'Dublin', 'Honda Accord', 10),
    (200, 'Dublin', 'Honda CRV', 3),
    (300, 'San Jose', 'Honda Civic', 5),
    (300, 'San Jose', 'Honda Accord', 8);

-- QUALIFY with window functions in the SELECT list.
> SELECT
    city,
    car_model,
    RANK() OVER (PARTITION BY car_model ORDER BY quantity) AS rank
  FROM dealer
  QUALIFY rank = 1;
 city     car_model    rank
 -------- ------------ ----
 San Jose Honda Accord 1
 Dublin   Honda CRV    1
 San Jose Honda Civic  1

-- QUALIFY with window functions in the QUALIFY clause.
SELECT city, car_model
FROM dealer
QUALIFY RANK() OVER (PARTITION BY car_model ORDER BY quantity) = 1;
 city     car_model
 -------- ------------
 San Jose Honda Accord
 Dublin   Honda CRV
 San Jose Honda Civic