Redshift-打印变量的输出

时间:2018-12-03 08:44:37

标签: python python-3.x variables amazon-redshift

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

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

我正在尝试打印以下内容的输出:

for num in df:
    print(num)

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

1 个答案:

答案 0 :(得分:1)

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

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条记录的最大值

旁注:在没有LIMIT的情况下使用ORDER BY毫无意义。如果有限制,通常还应该排序。