python - Redshift - 变量的打印输出
问题描述
我正在尝试从表中获取行数并将其打印出来。我这样做如下:
cursor = db.cursor()
cursor.execute("""SELECT count (*) table limit 30""")
df = cursor.fetchall()
我正在尝试打印上面的输出,如下所示:
for num in df:
print(num)
尽管预期输出为 30,但它返回“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
withoutORDER BY
是相当没有意义的。如果你限制,你通常也应该排序。
推荐阅读
- android - 网站在浏览器中打开,但在 WebView 中不起作用
- c++ - 如何在 QTextEdit 中输出文本上方的单词
- vba - Application_ItemSend() 的语法是什么?
- php - 使用 ForEach 语句将值存储在数组中
- javascript - SailsJS / Waterline ORM:仅使用一个查询更新多个条目
- django - 如何从 websocket 请求中找到用户?
- laravel - Laravel 查询构建器 - 使用行中的数据与另一个中的时间进行比较
- spring-boot - 原因:io.lettuce.core.RedisCommandExecutionException: ERR denied to admin command
- sql - 如何在 SELECT 查询中将数组的第一个元素附加到自身
- python - 如果匹配,Sphinx 会忽略结果中的 ID