【发布时间】:2019-06-25 18:05:03
【问题描述】:
假设我们每年测量 3 次海龟的外观,以三分位数为单位(三个 4 个月的周期)。然后我们切换到季度(四个 3 个月的周期)。我想将今年的值与上一年的值进行比较。
感谢 Steve cmets 进行编辑。最初我用了错误的词来表示 4 个月的时间,称它为 trimester。 4 个月期间的正确词是tertile or quadrimester。
+------+--------+------------+------------+----------+
| year | period | d1 | d2 | value_cy |
+------+--------+------------+------------+----------+
| 2018 | T1 | 2018-01-01 | 2018-04-01 | 10 |
| 2018 | T2 | 2018-05-01 | 2018-08-01 | 20 |
| 2018 | T3 | 2018-09-01 | 2018-12-01 | 30 |
| 2019 | Q1 | 2019-01-01 | 2019-03-01 | 18 |
| 2019 | Q2 | 2019-04-01 | 2019-06-01 | 16 |
| 2019 | Q3 | 2019-07-01 | 2019-09-01 | 14 |
| 2019 | Q4 | 2019-10-01 | 2019-12-01 | 12 |
+------+--------+------------+------------+----------+
这是期望的结果:
+------+--------+------------+------------+----------+----------+
| year | period | d1 | d2 | value_cy | value_py |
+------+--------+------------+------------+----------+----------+
| 2018 | T1 | 2018-01-01 | 2018-04-01 | 10 | |
| 2018 | T2 | 2018-05-01 | 2018-08-01 | 20 | |
| 2018 | T3 | 2018-09-01 | 2018-12-01 | 30 | |
| 2019 | Q1 | 2019-01-01 | 2019-03-01 | 18 | 7.5 |
| 2019 | Q2 | 2019-04-01 | 2019-06-01 | 16 | 12.5 |
| 2019 | Q3 | 2019-07-01 | 2019-09-01 | 14 | 17.5 |
| 2019 | Q4 | 2019-10-01 | 2019-12-01 | 12 | 22.5 |
+------+--------+------------+------------+----------+----------+
where
Q1=3/4 * T1
Q2=1/4 * T1 + 1/2 * T2
我的努力:
我想到的想法是一个中间表,它将时间段从三个月转换为几个月,然后再转换为季度。
+--------+-------+
| period | month |
+--------+-------+
| Q1 | 1 |
| Q1 | 2 |
| Q1 | 3 |
| Q2 | 4 |
| Q2 | 5 |
| Q2 | 6 |
| Q3 | 7 |
| Q3 | 8 |
| Q3 | 9 |
| Q4 | 10 |
| Q4 | 11 |
| Q4 | 12 |
| T1 | 1 |
| T1 | 2 |
| T1 | 3 |
| T1 | 4 |
| T2 | 5 |
| T2 | 6 |
| T2 | 7 |
| T2 | 8 |
| T3 | 9 |
| T3 | 10 |
| T3 | 11 |
| T3 | 12 |
+--------+-------+
但是我想知道它是否可以通过源表的两个自连接来完成,首先连接在最接近的可能日期相等或更早,第二个日期相等或相等或更晚。有了这两个日期及其与源日期的差异,我们可以计算结果。
【问题讨论】:
-
你说你想比较今年和上一年。您希望以什么粒度级别进行比较?比较全年?按月?按季度?
-
只是吹毛求疵,但您确实意识到 三个月 意味着三个月(即与 季度 同义)?
-
@Steve 是的,你是对的。谢谢。我将编辑我的问题。
-
@dfundako 在宿舍
-
+1 表示“三分位”这个词的一般含义是“任何事物的一部分,分为三部分”(参见四分位)。此外,对于“测量乌龟......三分位数”的意外喜剧!
标签: sql sql-server