0

私はこれを持っています:

    SELECT BRAND_ID, CAST (ROUND (AVG(PROD_PRICE), 2) AS NUMERIC (9, 2)) AS 'LARGEST AVERAGE'
    FROM LGPRODUCT
    GROUP BY BRAND_ID

想定どおり、ブランドごとの平均価格が表示されます。

しかし、最大の数字だけを表示したい場合はどうなりますか?または最低?

私はMAXをさまざまな方法で使用しようとしており、WHEREとHAVINGを使用してみました。

私は何が欠けていますか?

4

1 に答える 1

1

について言及しているためRDBMS、以下のクエリはほとんどの rdbms で機能します。

SELECT  BRAND_ID, 
        CAST (ROUND (AVG(PROD_PRICE), 2) AS NUMERIC (9, 2)) AS 'LARGEST AVERAGE'
FROM    LGPRODUCT
GROUP   BY BRAND_ID
HAVING  CAST (ROUND (AVG(PROD_PRICE), 2) AS NUMERIC (9, 2)) =
        (
            SELECT  MAX(xx)
            FROM
            (
                SELECT  CAST (ROUND (AVG(PROD_PRICE), 2) AS NUMERIC (9, 2)) as xx
                FROM    LGPRODUCT
                GROUP   BY BRAND_ID
            ) s
        )

上記のクエリの利点の 1 つは、重複 (BRAND_ID平均が最大の s )を処理することです。

于 2013-03-06T04:25:16.873 に答える