如何计算此列与 2 行的比率

How to calculate the ratio of this column with 2 rows

我是 SQL 的新手,很难弄清楚如何将第 1 行 (101) 除以第 2 行 (576)。

COUNT
101
576

我希望输出是一个表示为小数点后两位的值。

有什么建议吗?

感谢您的帮助

table 中没有行“1”或“2”这样的东西。表表示 无序 集,因此没有指定顺序的列,就没有第一行或第二行。

您可以使用聚合将最小值除以最大值:

select min(count) * 1.0 / max(count)
from t;

注意 * 1.0。 Postgres 做整数除法,所以你想转换成带小数点的东西。

两行,很简单。 如果你有一个很大的输入 table,并且你想将第一行除以第二行,第三行除以第四行,等等,那么你需要一个排序列来保存你自己。

因此,对于 two-row table(请记住,table 永远不会排序),您只需要将较小的数字除以较大的数字即可。

这里是:

WITH                                                                
-- your input ...
input(counter) AS ( -- count is reserved word, use another name ...
          SELECT 101
UNION ALL SELECT 576
)
-- cheat and just divide the smaller by the bigger
-- as "@Gordon Linoff" suggests
-- force a float division by adding a non-integer operand
-- and hard-cast it to DECIMAL(5,2)
SELECT 
  CAST(
     MIN(counter) * 1.00 / MAX(counter)
     AS DECIMAL(5,2)
  ) AS result
FROM input;
-- out  result 
-- out ----------
-- out      0.18

但是,如果你有很多行,你总是需要将第一行除以第二行,将第三行除以第四行,也就是说,每个奇数行按顺序中的下一个偶数行顺序,那么你需要一个排序栏。

您的问题是您提出的问题,还是还有其他问题?