SUM()查询为每个条目返回0

时间:2017-03-03 00:55:16

标签: python mysql sql database sqlite

所以这是我正在尝试运行的查询示例:

import sqlite3
import pandas as pd
conn = sqlite3.connect('nfl_data.db')
c = conn.cursor()
newdf = c.execute("""SELECT name, SUM('Rush Yards')
                  FROM collegernr WHERE name ='Doug Martin'
                  GROUP BY name""")
df = pd.DataFrame(newdf.fetchall())
print(df)

我有几年大学统计数据的玩家,我想总结这些值,这样每个玩家的名字只出现一次,每列的值都是他们的大学总数。

对于每个返回的版本,运行此查询为每个行和列返回0(如果我包含更多变量并删除WHERE name ='Doug Martin'):

             0    1
0  Doug Martin  0.0

所有感兴趣的列都被归类为REAL或INTEGER,并且没有NULL值,只有0,而在Doug Martin的情况下,甚至没有任何0,都是严格正值。

我起初认为年份专栏可能会产生问题,但删除它并没有解决任何问题。

任何帮助都会受到赞赏,我确信在看了这么长时间之后,我只是遗漏了一些明显的东西。如果我创建了一个重复的问题我很难道歉,我在搜索栏中找不到任何快速谷歌或搜索的内容

1 个答案:

答案 0 :(得分:0)

MySQL正在将'Rush Yards'解析为字符串文字

在数值上下文中解释,计算结果为0.作为演示:

SELECT 'Rush Yards', 'Rush Yards' + 0

如果目的是引用列名,则标识符可以包含在反引号中:

SELECT `Rush Yards`, 'Rush Yards' FROM collegernr
       ^          ^
              SELECT `name`
                   , SUM(`Rush Yards`)
                FROM `collegernr`
               WHERE `name` = 'Doug Martin'
               GROUP BY `name`