在postgresql中按月和年查询结果

前端之家收集整理的这篇文章主要介绍了在postgresql中按月和年查询结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Postgres服务器上有以下数据库表:
id      date          Product Sales
1245    01/04/2013    Toys    1000     
1245    01/04/2013    Toys    2000
1231    01/02/2013    Bicycle 50000
456461  01/01/2014    Bananas 4546

我想创建一个查询,给出“销售”列的SUM,并按月份和年份对结果进行分组,如下所示:

Apr    2013    3000     Toys
Feb    2013    50000    Bicycle
Jan    2014    4546     Bananas

有一个简单的方法吗?

select to_char(date,'Mon') as mon,extract(year from date) as yyyy,sum("Sales") as "Sales"
from yourtable
group by 1,2

根据Radu的请求,我将解释这个查询

to_char(date,’Mon’)as mon,:将“date”属性转换为定义的月份短格式。

提取(年份从日期)作为yyyy:Postgresql的“extract”函数用于从“date”属性提取YYYY年。

sum(“Sales”)as“Sales”:SUM()函数将所有“Sales”值相加,并提供一个区分大小写的别名,并使用双引号保留区分大小写。

group by 1,2:GROUP BY函数必须包含SELECT列表中不属于聚合(也就是不在SUM / AVG / MIN / MAX等函数内的所有列)的所有列。这告诉查询,应该为每个唯一的列组合应用SUM(),在本例中为月和年列。 “1,2”部分是一个简写,而不是使用列别名,尽管最好使用完整的“to_char(…)”和“extract(…)”表达式来提高可读性。

猜你在找的Postgre SQL相关文章