2016-11-08 60 views
1

我有一個表中的數據經歷了GROUP BYSUM,然後被複制到一個csv文件。然而,在csv文件,原始組列不再保留,而是給出了某種羣的聚集按列如下:將數據從分組表中複製到CSV,同時保留原始列

row      site_el site_ng 
(2014, com, p125, 4A)  -125.4   0 
(2014, res, p125, 4A)  -221.1  -2994 
(2016, com, p125, 4A)  196.1   0 
(2016, res, p125, 4A)  -299.8  -1833 

我的SQL查詢:

COPY(
    SELECT year, sector, pca, clim_zone, SUM(site_el_per_bldg) as site_el, SUM(site_ng_per_bldg) as site_ng 
    FROM results_20161107.outputs 
    GROUP BY year, sector, pca, clim_zone 
) 
TO STDOUT WITH CSV HEADER; 

我d喜歡讓我的csv文件包括四列逐列,結束了這樣的事情:

year sector  pca clim_zone site_el site_ng 
2014  com  p125   4A  -125.4   0 
2014  res  p125   4A  -221.1  -2994 
2016  com  p125   4A  196.1   0 
2016  res  p125   4A  -299.8  -1833 

任何幫助表示讚賞,謝謝!

+0

輸出看起來像你在那些列周圍使用圓括號,例如:'SELECT(year,sector,pca,clim_zone),sum().. FROM ...' –

+0

啊是的,情況就是這樣...我在Python中實現它,並且有類似'(%(group_cols)s'),並沒有注意到那些額外的括號。 –

回答

1

的建議你使用這些列加上括號,e.g:

COPY (
    SELECT ( year, sector, pca, clim_zone), 
      SUM(site_el_per_bldg) as site_el, 
      SUM(site_ng_per_bldg) as site_ng 
    FROM results_20161107.outputs 
    GROUP BY year, sector, pca, clim_zone 
) 
TO STDOUT WITH CSV HEADER;

表達(year, sector, pca, clim_zone)一個匿名的記錄作爲列的類型創建一個列。您看到的輸出是記錄類型的默認文本表示形式。

相關問題