oracle中列中的数据求和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中列中的数据求和相关的知识,希望对你有一定的参考价值。

列名:A,第一行数据是1,第二行数据是2,第三行数据是4。
目的是 写出一条语句,统计出A的数据总和 7
1+2+4=7
显示7

参考技术A select sum(A) from 表名; 这个语句,要达到你们目的,除非你这个表中只有这三行数据。 参考技术B select sum(A) from 表名

本回答被提问者和网友采纳

计算数据框中列中的组

【中文标题】计算数据框中列中的组【英文标题】:Counting groups in columns in dataframe 【发布时间】:2021-03-26 02:38:03 【问题描述】:

我有一个数据框 df:

     prds
0    E01
1    E02
2    E03
3    E04
4    E01
5    E02
6    E03
7    E04
8    F01
9    F02
10   F03
11   F04
12   F05

我想对另一列“匹配”的“prds”列中的每个组进行计数,因此:

    prds  match
0    E01    1
1    E02    2
2    E03    3
3    E04    4
4    E01    1
5    E02    2
6    E03    3
7    E04    4
8    F01    1
9    F02    2
10   F03    3
11   F04    4
12   F05    5

任何帮助将不胜感激。提前谢谢你。

【问题讨论】:

【参考方案1】:

如果每个组都可以通过以1 结尾来定义,则可以使用Series.str.endswithSeries.cumsum 并传递给GroupBy.cumcount

df['match'] = df.groupby(df['prds'].str.endswith('1').cumsum()).cumcount() + 1
print (df)
   prds  match
0   E01      1
1   E02      2
2   E03      3
3   E04      4
4   E01      1
5   E02      2
6   E03      3
7   E04      4
8   F01      1
9   F02      2
10  F03      3
11  F04      4
12  F05      5

【讨论】:

非常感谢您的解决方案【参考方案2】:

你可以简单地提取数字:

df['match'] = df['prds'].str.extract('(\d+)').astype('int')

输出:

   prds  match
0   E01      1
1   E02      2
2   E03      3
3   E04      4
4   E01      1
5   E02      2
6   E03      3
7   E04      4
8   F01      1
9   F02      2
10  F03      3
11  F04      4
12  F05      5

【讨论】:

以上是关于oracle中列中的数据求和的主要内容,如果未能解决你的问题,请参考以下文章

oracle对查询到的数据进行求和统计

SQL:按日期分组并对列中的值求和

如何使用熊猫对与给定条件匹配的列中的值求和?

按场景/年重复对列中的 46 个单元格求和

R-折叠行并对列中的值求和

如何在 Jaspersoft iReport Designer 中对列中的所有值求和?