按星期顺序,postgresql 2年之间的数据

时间:2018-07-11 17:55:57

标签: sql postgresql psycopg2

我有一个数据库表transaction,其中包含以下列:

  

日期| mccg | us_amount |国家|

示例内容为:

08/10/2016 22:00:56 | 003 | 10  | UK
14/12/2016 19:26:34 | 004 | 30  | GER
18/02/2017 05:06:22 | 018 | 100 | UK
10/03/2016 14:52:45 | 018 | 25  | UK
12/03/2016 18:02:22 | 018 | 02  | UK

我想得到如下结果:

year_month_week | us_amount|  country | mccg
2016-03-2       | 27       |  UK      |  018
2017-02-2       | 100      |  UK      |  01

我在网上搜索了类似的解决方案,但找不到任何有用的解决方案。

我尝试了以下查询:

SELECT      year_month_week as (?),us_amount,country,mccg         
FROM        transaction
WHERE       country like 'UK' and mccg like '018'
GROUP BY    year_month_week
ORDER BY    year_month_week

但是我的问题是如何设置year_month_week的工作方式或每周的格式。

1 个答案:

答案 0 :(得分:1)

您可以使用to_char()

SELECT to_char(date, 'YYYY-MM-WW') as year_month_week,
       SUM(us_amount) as us_amount, country, mccg         
FROM transaction
WHERE country like 'UK' and mccg like '018'
GROUP BY year_month_week, country, mccg
ORDER BY year_month_week;

如果您要使用其他国家或地区的Mccg,请删除WHERE过滤器。