0

こんにちは私は実行しようとします:

 select
  year,
  regr_slope(sum(sale_count),year) as slope,
from products
group by year

00937。00000-「単一グループグループ関数ではありません」 」をスローします。select句から年を削除すると、問題が発生しなくなります。グループ化する列を選択できないようにする必要がありますか?

Oracle 11.2 sqldeveloper

助けを求めて!

4

2 に答える 2

2

これは、別の集計(SUM)の結果に対する集計(または分析)関数のいずれかである関数( REGR_SLOPE )を使用しようとしているためです-使用:

  SELECT x.year,
         REGR_SLOPE(sum_sales, x.year) AS slope
    FROM (SELECT y.year,
                 SUM(y.sale_count) AS sum_sales
            FROM PRODUCTS y
        GROUP BY y.year) x
GROUP BY x.year

WITH句を使用する代替方法(Oracle 9i +):

WITH sums AS (
     SELECT y.year,
            SUM(y.sale_count)
       FROM PRODUCTS y
   GROUP BY y.year)
  SELECT x.year,
         REGR_SLOPE(sum_sales, x.year) AS slope
    FROM sums x
GROUP BY x.year
于 2010-06-13T23:33:49.450 に答える
1

このようにやってみましたか?

select
   a.year
 , regr_slope(a.sale_count,a.year) as slope,
from (SELECT year
           , sum(sale_count) sale_count
        FROM products
      GROUP BY year) a
于 2010-06-13T23:34:12.753 に答える