Share via


Cláusula QUALIFIQUE

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 10.4 LTS e superior.

Filtra os resultados das funções da janela. Para usar QUALIFYo , é necessário que pelo menos uma função de janela esteja presente na SELECT lista ou na QUALIFY cláusula.

Sintaxe

QUALIFY boolean_expression

Parâmetros

  • boolean_expression

    Qualquer expressão que seja avaliada como um tipo booleande resultado . Duas ou mais expressões podem ser combinadas usando os operadores lógicos ( AND, OR).

    As expressões especificadas na QUALIFY cláusula não podem conter funções agregadas.

Exemplos

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