との集約が、私はこのようになりますテーブルには、各ブランドのためsales_share
を取得するようSQL - GROUPBYとパーティショニング
SELECT
brand, SUM(sales)/SUM(sales) OVER() as sales_share
FROM sales
GROUP BY brand
だから私は、次のSQLクエリを使用していた
brand | model | sales
--------+----------+------
brand1 | model11 | 100
brand1 | model11 | 300
brand2 | model21 | 100
brand2 | model22 | 400
brand3 | model31 | 100
sales
と呼ばれています以下のようになります
brand | sales_share
--------+--------------
brand1 | 0.4
brand2 | 0.5
brand3 | 0.1
しかし、私はエラーAttribute SALES.sales must be GROUPed or used in an aggregate function
- どのポインタ?
SUM(売上高)/ SUM(売上高)1で、かつオーバー削除して、正確な質問 – VISHMAY
@VISHMAY尋ねる:: 'SUM(売上高)/ SUM(売上高)'実際にPostgresは
SQLFiddleは整数の除算を使用します。は1ですが、 'SUM(sales)/ SUM(sales)OVER()'は –
期待しているのは "SUM(売上)/ SUM(売上)"ではなく "SUM(売上)/ SUM(売上)OVER()"で、同じではなく、1と等しくない。 (すべてのブランドの合計)/(1ブランドの合計) –