Redshift - вывод на печать переменной - PullRequest
0 голосов
/ 03 декабря 2018

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

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

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

for num in df:
    print(num)

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

1 Ответ

0 голосов
/ 03 декабря 2018

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

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

...