Redshift - вывод на печать переменной

1

Я пытаюсь получить количество строк из таблицы и напечатать ее. Я делаю это, как показано ниже:

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

Я пытаюсь напечатать вывод выше, как показано ниже:

for num in df:
    print(num)

Это возвращает "1", хотя ожидаемый результат равен 30. Может ли кто-нибудь советоваться о том, где я буду ошибаться. Спасибо

  • 1
    вы, вероятно, должны пометить этот вопрос как python
Теги:
python-3.x
variables
amazon-redshift

1 ответ

0

Поскольку вы хотите напечатать значение первого (и единственного) столбца в наборе результатов, вы должны использовать это:

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 довольно бессмысленно. Если вы ограничиваете, вы должны также сортировать.

  • 0
    Спасибо, попробовал это, но он возвращает (30,). Как я мог просто показать 30.
  • 0
    @scottmartin Вы можете попытаться присвоить псевдоним счетчику в своем запросе, а затем получить к нему доступ при печати строки. Но я удивлен, что мой первый ответ не сработал.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню