【问题标题】:Redshift - Printing output of variableRedshift - 变量的打印输出
【发布时间】:2018-12-03 08:44:37
【问题描述】:

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

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

我正在尝试将上面的输出打印如下:

for num in df:
    print(num)

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

【问题讨论】:

  • 你应该把这个问题标记为 python

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


【解决方案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 条记录。

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

【讨论】:

  • 感谢尝试过,但它返回 (30,)。我怎么能只显示 30。
  • @scottmartin 您可以尝试为查询中的计数分配别名,然后在打印行时访问它。但是,我很惊讶我的第一个答案没有奏效。
猜你喜欢
  • 1970-01-01
  • 2020-02-11
  • 2023-02-07
  • 1970-01-01
  • 2016-12-11
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多