Share via


HAVING 절

적용 대상:검사 예 Databricks SQL 검사 예 Databricks Runtime으로 표시됨

지정된 조건에 따라 에서 생성된 GROUP BY 결과를 필터링합니다. GROUP BY 절과 함께 자주 사용됩니다.

구문

HAVING boolean_expression

매개 변수

  • boolean_expression

    결과 형식BOOLEAN으로 계산되는 식입니다. 또는 OR 와 같은 AND 논리 연산자를 사용하여 둘 이상의 식을 함께 결합할 수 있습니다.

    절에 HAVING 지정된 식은 다음만 참조할 수 있습니다.

> 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);

-- `HAVING` clause referring to column in `GROUP BY`.
> SELECT city, sum(quantity) AS sum FROM dealer GROUP BY city HAVING city = 'Fremont';
  Fremont  32

-- `HAVING` clause referring to aggregate function.
> SELECT city, sum(quantity) AS sum FROM dealer GROUP BY city HAVING sum(quantity) > 15;
  Dublin  33
 Fremont  32

-- `HAVING` clause referring to aggregate function by its alias.
> SELECT city, sum(quantity) AS sum FROM dealer GROUP BY city HAVING sum > 15;
  Dublin  33
 Fremont  32

-- `HAVING` clause referring to a different aggregate function than what is present in
-- `SELECT` list.
> SELECT city, sum(quantity) AS sum FROM dealer GROUP BY city HAVING max(quantity) > 15;
 Dublin  33

-- `HAVING` clause referring to constant expression.
> SELECT city, sum(quantity) AS sum FROM dealer GROUP BY city HAVING 1 > 0 ORDER BY city;
   Dublin  33
  Fremont  32
 San Jose  13

-- `HAVING` clause without a `GROUP BY` clause.
> SELECT sum(quantity) AS sum FROM dealer HAVING sum(quantity) > 10;
  78