Redshift-将SQL的输出传递给不同的变量

时间:2018-12-03 11:00:39

标签: python-3.x amazon-redshift

我有一个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 :(得分:1)

您只需要在此处按查询进行基本分组:

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"])