作为工作的一部分,我试图从csv文件中提取最小值和最大值,但是当我运行代码时,将打印列名而不是实际的最大值,而最小值打印就很好了。 / p>
我曾尝试将其分成不同的选择语句,例如将min和max都分开,但这没有用。该语句可以打印表中的总数,平均年龄和最小余额。但是无法打印最大限额余额。我不能在一个陈述中结合最小和最大吗?看起来确实像是第二组括号,它可以很好地打印出来,在我的CSV中该列的最大值为1,000,000。
这是我要执行的表结构,列出了表的列名。
c.execute(
'''CREATE TABLE Users (ID INTEGER, LIMIT_BAL INTEGER, SEX
INTEGER, EDUCATION INTEGER, MARRIAGE INTEGER,
AGE INTEGER, PAY_0 INTEGER, PAY_2 INTEGER, PAY_3 INTEGER, PAY_4 INTEGER, PAY_5 INTEGER,
PAY_6 INTEGER, BILL_AMT1 INTEGER, BILL_AMT2 INTEGER, BILL_AMT3 INTEGER, BILL_AMT4 INTEGER,
BILL_AMT5 INTEGER,BILL_AMT6 INTEGER, PAY_AMT1 INTEGER, PAY_AMT2 INTEGER, PAY_AMT3 INTEGER,
PAY_AMT4 INTEGER, PAY_AMT5 INTEGER, PAY_AMT6 INTEGER, default_payment_next_month INTEGER)
''')
# sixth query
c.execute(
'SELECT COUNT(*), AVG(AGE), MIN(LIMIT_BAL), MAX(LIMIT_BAL) \
default_payment_next_month FROM Users GROUP BY
default_payment_next_month = 0')
rows = c.fetchall()
print('6): \n', rows)
输出:
6):
[(6319, 35.645830036398166, 10000, 'LIMIT_BAL'), (21752, 35.39196395733725, 10000, 1000000)]
答案 0 :(得分:0)
我要尝试的查询是
选择COUNT(*),AVG(AGE),MIN(LIMIT_BAL),MAX(LIMIT_BAL) 来自用户 其中default_payment_next_month = 0 GROUP BY default_payment_next_month
我不确定MAX(LIMIT_BAL)\ default_payment_next_month语句在做什么。我假设您将MAX(LIMIT_BAL)除以default_payment_next_month。如果是这种情况,则该语句为MAX(LIMIT_BAL)/ default_payment_next_month,但这在group by中可能不起作用。