0

テーブル:

+-----+----+----------+
| QTR | MO | PCT_PERF |
+-----+----+----------+
|   1 | 1  |       89 | 
|   1 | 2  |       73 |
|   1 | 3  |       95 |
+-----+----+----------+

これの適切な構文は何ですか?

CASE WHEN QTR=1 THEN ROUND(SUM(PCT_PERF WHERE MO IN (1,2,3))/3,2)
 WHEN QTR=2 THEN ROUND(SUM(PCT_PERF WHERE MO IN (4,5,6))/3,2) 
 WHEN QTR=3 THEN ROUND(SUM(PCT_PERF WHERE MO IN (7,8,9))/3,2)
 ELSE ROUND(SUM(PCT_PERF WHERE MO IN (10,11,12))/3,2) END QTR_PCT

したがって、QTR が 1 の場合、QTR_PCT は 86 になります。 (89+73+95)/3 = 85.67

4

1 に答える 1

1

オラクルのAVG(「平均」)関数が問題を解決すると思います。これを確認するのに便利な Oracle データベースがありません。

SELECT QTR, ROUND(AVG(PCT_PERF), 2) AS QTR_PCT FROM ... GROUP BY QTR
于 2013-01-08T00:09:47.637 に答える