2013-11-25 4 views
0

oracle sql developer를 사용하고 있으며이 쿼리가 작동하지 않습니다. 그것은 하나의 그룹 기능이 아니라는 것을 말해줍니다. 도와주세요.oracle sql 개발자의 카운트 사용

SELECT LGBRAND.BRAND_NAME, LGPRODUCT.PROD_DESCRIPT, 
    COUNT (LGPRODUCT.PROD_DESCRIPT) AS "NUMPRODUCTS" 
FROM LGBRAND, LGPRODUCT 
ORDER BY LGBRAND.BRAND_NAME; 

나는 각 제품을 각 브랜드 이름별로 그룹화하려고합니다. 집계 함수를 사용하는 경우

+0

사용중인 데이터베이스를 지정하면 도움이됩니다. Oracle SQL Developer는 다양한 데이터베이스와 함께 작동합니다. 우리는 당신이 오라클을 사용하고 있다고 추측 할 수 있지만 그것은 잘못된 추측 일 수 있습니다. 두 테이블 사이에 데카르트 조인을 수행하고 있습니다. 'lgbrand'와'lgproduct' 테이블에 관련된 칼럼이 실제로 없습니까? 물론 아래에 논의 된 바와 같이'GROUP BY '도 필요할 것이다. 그러나 당신은 아마도 join 논리없이 잘못된 대답을 얻게 될 것이다. –

답변

1

당신은 합이 기능에 의해 그룹과 함께 사용되어야한다, 평균처럼 group by 절을

모든 집계 함수를 사용하여 계산해야합니다. group by 절을 사용하지 않으면 테이블의 모든 행에 대해 함수를 수행하고있는 것입니다.

SELECT LGBRAND.BRAND_NAME, 
      LGPRODUCT.PROD_DESCRIPT, 
      COUNT (LGPRODUCT.PROD_DESCRIPT) AS "NUMPRODUCTS" 
    FROM LGBRAND, LGPRODUCT, 
    GROUP BY LGBRAND.BRAND; 
+0

내가 쿼리를 실행하면 잘못된 테이블 이름이나 아이디어가 있다는 것을 알 수 있습니까? –

+0

당신은 같은 두 개의 테이블을 조인 할 필요가'LGBRAND.BRAND_NAME, LGPRODUCT.PROD_DESCRIPT을 선택 COUNT (LGPRODUCT.PROD_DESCRIPT) LGBRAND.BRAND_NAME BY LGBRAND.id = LGPRODUCT.id GROUP에 LGPRODUCT 가입 LGBRAND FROM "NUMPRODUCTS" AS ;' –

1

GROUP BY 절을 사용해야합니다.