PostgreSQL – 确定总数的百分比

前端之家收集整理的这篇文章主要介绍了PostgreSQL – 确定总数的百分比前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张桌子
  1. ID | NUMBER
  2. ------|----------
  3. 1 | 102
  4. 2 | 145
  5. 3 | 512
  6. 4 | 231
  7. 5 | 94

并且我希望将所有’NUMBER’相加并从总计返回每行的%值.
结果应如下所示:

  1. ID | NUMBER | PERC
  2. ------|--------------|-------
  3. 1 | 102 | 9.4
  4. 2 | 145 | 13.4
  5. 3 | 512 | 47.2
  6. 4 | 231 | 21.3
  7. 5 | 94 | 8.7

到目前为止,我有类似的东西:

  1. SELECT (number/sum(number)*100) AS perc
  2. FROM mytable;

但正如您所知,“数字”必须出现在GROUP BY或聚合函数中,因此我无法使用它.怎么做?

你可以使用带有over子句的sum:
  1. SELECT 100.0 * number / sum(number) over () as perc
  2. FROM mytable;

Example at SQL Fiddle.

猜你在找的Postgre SQL相关文章