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

У меня есть сценарий SQL, который извлекает данные о продажах по агентам.

cur = conn.cursor()
cur.execute("""select sales_rep,to_char(sales_date,'yyyy-mm')as month,count(*) from sale""")
report = cur.fetchall()

Я пытаюсь выяснить, могу ли я передать полученный из выходных данных счет в переменную (количество) и значение месяца в другую переменную(month_count).

Может кто-нибудь советовать по этому поводу.Спасибо.

Обновление:

Пример вывода:

Sales_Rep,Month,Count
Person1,Jan,20
Person1,Feb,15
Person1,Mar,10
Person2,Jan,8
Person2,Feb,13
Person2,Mar,15

Ожидаемый результат:

count = 20,15,108,13,15
month = jan,feb,mar,jan,feb,mar

1 Ответ

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

Вам просто нужна базовая группа по запросу:

SELECT
    sales_rep,
    TO_CHAR(sales_date, 'yyyy-mm') AS month,
    COUNT(*) AS cnt
FROM sale
GROUP BY
    sales_rep,
    TO_CHAR(sales_date, 'yyyy-mm');

Код Python:

cur = conn.cursor()
cur.execute("""SELECT sales_rep, TO_CHAR(sales_date, 'yyyy-mm') AS month, COUNT(*) AS cnt FROM sale GROUP BY sales_rep, TO_CHAR(sales_date, 'yyyy-mm')""")
rows = cur.fetchall()
for row in rows:
    print("{} " + row["month"]).format(row["cnt"])
...