PostgreSQL - 如何获得前一个月和一周的价值?

努尔丁

现在我得到每个月的平均值

SELECT EXTRACT(MONTH FROM date_time) AS month, EXTRACT(YEAR FROM date_time) AS year, avg("total") FROM my_table GROUP BY EXTRACT(MONTH FROM date_time), EXTRACT(YEAR FROM date_time)

但是 SQL 查询需要调整,所以total value current month - previous month

可能吗?

每周

SELECT EXTRACT(WEEK FROM date_time) AS week, EXTRACT(YEAR FROM date_time) AS year, avg("total") FROM my_table GROUP BY EXTRACT(WEEK FROM date_time), EXTRACT(YEAR FROM date_time)
拉霍斯阿帕德

是的,有可能:

SELECT t1.month, t2.year, t1.tot - t2.tot FROM
(
SELECT EXTRACT(MONTH FROM date_time) AS month, EXTRACT(YEAR FROM date_time) AS year, avg("total") AS tot
FROM my_table GROUP BY EXTRACT(MONTH FROM date_time), EXTRACT(YEAR FROM date_time)
) t1
join (
SELECT EXTRACT(MONTH FROM date_time) AS month, EXTRACT(YEAR FROM date_time) AS year, avg("total") AS tot
FROM my_table GROUP BY EXTRACT(MONTH FROM date_time), EXTRACT(YEAR FROM date_time)
) t2
on ((t1.year = t2.year) and (t1.month = t2.month + 1)) or
   ((t1.year = t2.year + 1) and (t1.month = 1) and (t2.month = 12))

我已将您的select并将其转换为两个子选择,分别将它们命名为t1andt2并通过左连接的标准将它们连接起来。

请注意,第一个月目前还没有配对,如果您仍然需要它,那么您可以使用left joinandcoalesce来确保即使是未配对的项目也有一个“配对”,并且NULLfortot默认为 0。

进一步注意,您可以将此子查询转换为 aview以获得更好的可读性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何使用 Carbon 从一个月的一周和一周的哪一天获得日期?

程序在一周的第c天获得一个月

如何在Postgresql中获得一个月中不同产品的最大总金额?

如何在 Jalali (Shamsi) 日历中获得一年中的一周和一个月中的一周

SQL Server:获取一个月的第一周和第二周的日期范围

如何在Java中获得前一个月和年份?

给定的天数超过一周,一个月或一年

计算一天,一周,一个月的用户注册

在MomentJs中,如何获得一个月中的一周中的第二个季度

将查找转换为一周到一个月?

使用powershell获取一个月最后一周的日期

同一个月的一周中的几天,moment.js

如何获得一个月的职业?

如何获得一个月的天数

为前一周的值创建单独的列(PostgreSQL)

在PostgreSQL中获取一个月前的时间戳

获取一个月中除周末以外的所有日子 postgresql

确定一周中的哪一天是一个月的每个日期

我怎么知道某个特定日期是父日期是一个月还是一周?

我想从一个月的一周中获取开始日期和结束日期(android)

如何将NSDate转换为相对格式,如“今天”,“昨天”,“一周前”,“一个月前”,“一年前”?

使用Postgresql的前一周的第一天和最后一天

PostgreSQL自定义周编号-包含2月1日的第一周

如何在Python Pandas中获得上一年最后一个月的最后一个工作周?

在Python日期时间为什么是第一个月,“月”,= 1,但“星期一”,一周= 0的第一天?

获取一周中的几天,一个月中的一天

如何获得日期列表中一个月的最后一天

如何获得一个月的最后一天?

如何获得一个月的最后一天在不同的物品上?-SQL