SQL:函数Sum()的参数数量错误

时间:2019-09-18 14:57:08

标签: sql pandas

我有一个包含很多列的数据集。我需要先对所有其他列进行Group By ID然后SUM的操作(因此,ID不得聚合)。

这是我的代码的一小部分示例:

import pandas as pd
import pandasql as ps

dt= {

"ID" : [1,2,1,4,2],
"A" : [2,3,4,5,6],
"B":[10,20,30,40,50],
"C": [100, 200, 300, 400, 500]
}

dt= pd.DataFrame(dt)

dt= pd.DataFrame(dt)

query = """ 
                    select ID,Sum(*)
                    from dt
                    group by ID
             """

polyps = ps.sqldf(query)

但是,它抱怨:

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) wrong number of arguments to function Sum()
[SQL:  
                    select ID,Sum(*)
                    from dt
                    group by ID
             ]

因此,正确的输出是:

   ID  A    B    C
0   1  6   40  400
1   2  9   70  700
2   4  5  700  400

2 个答案:

答案 0 :(得分:1)

如果要分别汇总各列,则需要列出它们:

select ID, sum(a), sum(b), sum(c)
from dt
group by ID;

如果您想将所有这些的总和放在一栏中:

select ID, sum(a) + sum(b) + sum(c)
from dt
group by ID;

*仅用于count(*),其目的是计算行数。

答案 1 :(得分:0)

选择ID,(ISNULL(dt.val1,0)+ ISNULL(dt.val2,0)+ ISNULL(dt.val3,0))作为'总计'  来自dt

错误“函数Sum()的参数数量错误”表示,而不是“ *”,您需要提及SUM中的字段。