Sql 如何找出一个城市当前和下一个月的中间价差异?

Sql 如何找出一个城市当前和下一个月的中间价差异?,sql,postgresql,Sql,Postgresql,如何获得该市tat月房价中值与该市下月房价中值之间的绝对差值? 我有一张有房子资料的桌子。它包含了每套房子的价格和市价以及出售日期。我想得到一个月的市政府房价中值和下个月的市政府房价中值的差值。已经创建了中值函数。 这是我目前的问题: select gemeentenaam as municipality, EXTRACT(MONTH FROM datum_ondertekening) as month, median(koopprijs) as median_price_pre

如何获得该市tat月房价中值与该市下月房价中值之间的绝对差值? 我有一张有房子资料的桌子。它包含了每套房子的价格和市价以及出售日期。我想得到一个月的市政府房价中值和下个月的市政府房价中值的差值。已经创建了中值函数。 这是我目前的问题:

select gemeentenaam as municipality, 
       EXTRACT(MONTH FROM datum_ondertekening) as month, median(koopprijs) as median_price_previous_month, 
       LEAD(median(koopprijs)) OVER(PARTITION BY gemeentenaam) AS median_price_next_month, 
       ABS((LEAD(median(koopprijs)) OVER(PARTITION BY gemeentenaam))-(median(koopprijs))) AS difference 
from funda 
  inner join postcode on funda.postcode = postcode.postcode 
  inner join gemeente on postcode.gemeente = gemeente.gemcode 
WHERE EXTRACT(MONTH FROM datum_ondertekening) <> 12 
group by (gemeentenaam, EXTRACT(MONTH FROM datum_ondertekening), koopprijs);
预期结果:

 municipality  | month | median_price_previous_month | median_price_next_month |    difference
---------------+-------+-----------------------------+-------------------------+-------------------
 's-Gravenhage |     1 |         100000.000000000000 |     105000.000000000000 | 5000.000000000000
 's-Gravenhage |     2 |         105000.000000000000 |     110000.000000000000 | 5000.000000000000
 's-Gravenhage |     3 |         110000.000000000000 |     115000.000000000000 | 5000.000000000000
 's-Gravenhage |     4 |         115000.000000000000 |     119000.000000000000 | 4000.000000000000
 's-Gravenhage |     5 |         119000.000000000000 |     119500.000000000000 |  500.000000000000

我想是我自己找到的

select gemeentenaam as municipality, EXTRACT(MONTH FROM datum_ondertekening) as month, median(koopprijs) as 
                media_price_next_month, LAG(median(koopprijs)) OVER(PARTITION BY gemeentenaam) AS median_price_previous_month, 
                ABS(median(koopprijs)-(LAG(median(koopprijs)) OVER(PARTITION BY gemeentenaam))) AS absolute_difference 
        from funda 
            inner join postcode on funda.postcode = postcode.postcode 
            inner join gemeente on postcode.gemeente = gemeente.gemcode WHERE EXTRACT(MONTH FROM datum_ondertekening) <> 1
            group by (gemeentenaam, EXTRACT(MONTH FROM datum_ondertekening));```
选择gemeentenaam作为市政府,提取(从基准面开始的月份)作为月份,中位数(koopprijs)作为月份
下个月的媒体价格,滞后(中位数(koopprijs))超过(按gemeentenaam划分)作为上个月的中位数价格,
绝对差值为绝对差值的绝对绝对值
来自芬达
基金内部联接邮政编码a.postcode=邮政编码.postcode
postcode.gemeente=gemeente.gemcode上的内部连接gemeente,其中提取(从数据开始的月份)1
分组(gemeentenaam,摘录(从数据开始的月份))```

请提供样本数据和所需结果。请检查编辑@GordonLinoff
select gemeentenaam as municipality, EXTRACT(MONTH FROM datum_ondertekening) as month, median(koopprijs) as 
                media_price_next_month, LAG(median(koopprijs)) OVER(PARTITION BY gemeentenaam) AS median_price_previous_month, 
                ABS(median(koopprijs)-(LAG(median(koopprijs)) OVER(PARTITION BY gemeentenaam))) AS absolute_difference 
        from funda 
            inner join postcode on funda.postcode = postcode.postcode 
            inner join gemeente on postcode.gemeente = gemeente.gemcode WHERE EXTRACT(MONTH FROM datum_ondertekening) <> 1
            group by (gemeentenaam, EXTRACT(MONTH FROM datum_ondertekening));```