你已经看到了如何计算这些数字的总和。 然而,为什么你要创建一个数字的列表,而你唯一感兴趣的是它们的和? 一般来说,如果 list 以1开头,以n结尾,则公式为n(n + 1) / 2。重写为Oracle SQL:
SQL> select &&par_number * (&&par_number + 1) / 2 as result from dual;
Enter value for par_number: 5
RESULT
----------
15
SQL> undefine par_number
SQL> select &&par_number * (&&par_number + 1) / 2 as result from dual;
Enter value for par_number: 3
RESULT
----------
6
SQL>
4条答案
按热度按时间px9o7tmv1#
你已经看到了如何计算这些数字的总和。
然而,为什么你要创建一个数字的列表,而你唯一感兴趣的是它们的和?
一般来说,如果 list 以
1
开头,以n
结尾,则公式为n(n + 1) / 2
。重写为Oracle SQL:字符串
7jmck4yq2#
只需将
n
Package 在SUM
中:字符串
但是一个更简单的生成数字的方法(如果你愿意,然后对它们求和)是:
型
snvhrwxg3#
在SQL中不能使用sum(*),但可以对n中的所有值求和:
字符串
我假设你已经知道这一点了。
6ioyuze24#
如果该列表的唯一目的是获得从1到
n
的数字之和,则使用公式:sum(1..n) = n*(n+1)/2
。个字符
| F_SUM_1_N(5)|
| --|
| 15 |
fiddle
或者使用SQL Macro for 21 c+来避免上下文切换。
的字符串
| SUM(F_SUM_1_N_MACRO(瓦尔))|
| --|
| 15 |
fiddle的