在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(…)”表达式来提高可读性。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |