加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在postgresql中按月和年查询结果

发布时间:2020-12-13 16:52:04 所属栏目:百科 来源:网络整理
导读:我在Postgres服务器上有以下数据库表: id date Product Sales1245 01/04/2013 Toys 1000 1245 01/04/2013 Toys 20001231 01/02/2013 Bicycle 50000456461 01/01/2014 Bananas 4546 我想创建一个查询,给出“销售”列的SUM,并按月份和年份对结果进行分组,
我在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(…)”表达式来提高可读性。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读