Oracle

計算分組中的非空值

  • March 16, 2017

我有一張TRAILS桌子:

+----+------------+-----------------+
| ID |  LENGTH    | CONDITION (1-5) |
+----+------------+-----------------+
|  1 |    23.1    | null            |
|  2 |    41.7    | 1               |
|  3 |    10.9    | 4               |
|  4 |     6.2    | null            |
|  5 |    70.6    | 2               |
|  6 |    82.1    | 2               |
+----+------------+-----------------+

我想這樣總結表格:

    +------------+-----------------+----------------------------+
    | TOT_LENGTH |  AVG_CONDITION  | CONDITION_PERCENT_COMPLETE |
    +------------+-----------------+----------------------------+
    |      234.6 |            2.25 |                        66% |
    +------------+-----------------+----------------------------+

我可以做 aGROUP BY來獲取TOT_LENGTHand AVG_CONDITION,但我不確定如何獲取CONDITION_PERCENT_COMPLETE,而不會NULLS從查詢/其他列中刪除。

我怎樣才能做到這一點?

COUNT(condition)``condition計算組中不為空的所有行。

COUNT(*)計算組中的所有行。

COUNT(condition) / COUNT(*) * 100返回上述百分比的百分比。

引用自:https://dba.stackexchange.com/questions/167380