首页 > 解决方案 > Redshift - 变量的打印输出

问题描述

我正在尝试从表中获取行数并将其打印出来。我这样做如下:

cursor = db.cursor()
cursor.execute("""SELECT count (*) table limit 30""")
df = cursor.fetchall()

我正在尝试打印上面的输出,如下所示:

for num in df:
    print(num)

尽管预期输出为 30,但它返回“1”。任何人都可以建议我哪里出错了。谢谢

标签: pythonpython-3.xvariablesamazon-redshift

解决方案


由于您要打印结果集中第一(也是唯一)列的值,因此您应该使用以下命令:

cursor = db.cursor()
cursor.execute("""SELECT COUNT(*) AS cnt FROM table LIMIT 30""")
row = cursor.fetchone()
if row is not None:
    print(df["cnt"])

如果这仍然返回计数1,那么还有另一种可能的解释。您的表中可能恰好只有一条记录。 LIMIT 30并不意味着总是返回 30 条记录,只是最多返回 30 条记录。

旁注:使用LIMITwithoutORDER BY是相当没有意义的。如果你限制,你通常也应该排序。


推荐阅读