반응형
"집약 함수는 WHERE에서 허용되지 않습니다" 오류를 방지하는 방법
이 SQL 코드는
WHERE에서는 집계 함수를 사용할 수 없습니다.
SELECT o.ID , count(p.CAT)
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID
WHERE count(p.CAT) > 3
GROUP BY o.ID;
어떻게 하면 이 오류를 피할 수 있을까요?
교체하다WHERE
을 조항으로 하다.HAVING
, 다음과 같이 합니다.
SELECT o.ID , count(p.CAT)
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID
GROUP BY o.ID
HAVING count(p.CAT) > 3;
HAVING
와 유사하다WHERE
둘 다 결과 레코드를 필터링하기 위해 사용됩니다.HAVING
집약된 데이터를 필터링하기 위해 사용됩니다(경우에 따라).GROUP BY
사용되고 있습니다).
사용하다HAVING
대신 조항WHERE
이것을 시험해 보세요.
SELECT o.ID, COUNT(p.CAT) cnt
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID
GROUP BY o.ID HAVING cnt > 3
주문표에 기재되어 있는 가격의 중앙값보다 큰 가격을 기재하는 조건이 있는 경우, 셀프 조인은 조인과 함께 토스를 할 수 있습니까?
예: order_item, Order_Price
WHERE 절에서는 집약 함수를 사용할 수 없기 때문에>
select a.order_item_product_price, count(distinct
a.order_item_product_price) from
default.order_items a , default.order_items b
where a.order_item_product_price = b.order_item_product_price
group by a.order_item_product_price
having a.order_item_product_price > appx_median(b.order_item_product_price)
order by a.order_item_product_price limit 10
언급URL : https://stackoverflow.com/questions/20991729/how-to-avoid-error-aggregate-functions-are-not-allowed-in-where
반응형
'source' 카테고리의 다른 글
Java에서 Integer를 String에 캐스팅할 수 없는 이유는 무엇입니까? (0) | 2023.01.22 |
---|---|
MySQL/MARIADB에서 사용자 수준 잠금 강제 해제 (0) | 2023.01.22 |
순서부여된 기본 dict를 구현하는 방법 (0) | 2023.01.22 |
PHP를 사용하여 MySQL 데이터베이스에서 이미지를 저장 및 검색하려면 어떻게 해야 합니까? (0) | 2023.01.22 |
MariaDB : 데이터베이스를 만들고 명령줄 cmd에서 '<' 문자를 사용하지 않고 sql 스크립트를 실행합니다.실행 (0) | 2023.01.22 |