交叉表数据丢失

时间:2019-07-19 19:10:13

标签: postgresql

我正在使用Crosstab函数来垂直重新排列现有的水平数据。查询,返回的数据是准确的并且已重新排列,但是缺少许多行。我该如何解决?

FROM crosstab('SELECT
id,
                      town,
                      case_year,
                      felony_cases
                      FROM crimefigsbytown
ORDER BY town',

              'SELECT case_year
                      FROM crimefigsbytown
                      GROUP BY case_year
                      ORDER BY case_year DESC')


                   AS (id varchar(16),
                      town text,
y_2020 int,
y_2019 int,
y_2018 int,
y_2017 int,
y_2016 int,
y_2015 int,
y_2014 int,
y_2013 int,
y_2012 int,
y_2011 int,
y_2010 int,
y_2009 int,

...

我期望256行代表一个城镇,但是我的交叉表仅返回180行。

请注意,当我从Crimefigsbytown做一个SELECT DISTINCT城镇时,我得到了承诺的256行和城镇。

此外,它向我显示的行中缺少某些列数据,因此我认为这不是NULL的问题。

0 个答案:

没有答案