web-dev-qa-db-ja.com

カウント結果セットの平均を取得しようとしています

私は次のSQLを持っています:(bitemp)

_SELECT COUNT (*) AS Count
  FROM Table T
 WHERE (T.Update_time =
           (SELECT MAX (B.Update_time )
              FROM Table B
             WHERE (B.Id = T.Id))
GROUP BY T.Grouping
_

今、私は多くの数字で結果セットを取得しています。このリストの平均を取得したい。現時点では、リストをExcelにインポートし、その平均関数を使用しています。しかし、DB2にはAVG関数がありますが、機能しませんでした。

SELECT AVG(COUNT(*))SELECT AVG(*) FROM (theQuery)も試しました。

22
Xavjer

クエリをサブクエリとして置くことができます:

SELECT avg(count)
  FROM 
    (
    SELECT COUNT (*) AS Count
      FROM Table T
     WHERE T.Update_time =
               (SELECT MAX (B.Update_time )
                  FROM Table B
                 WHERE (B.Id = T.Id))
    GROUP BY T.Grouping
    ) as counts

編集:これは同じであると思う:

SELECT count(*) / count(distinct T.Grouping)
  FROM Table T
 WHERE T.Update_time =
           (SELECT MAX (B.Update_time)
              FROM Table B
             WHERE (B.Id = T.Id))
52
DavidEG