2013-10-04 116 views
0

我想執行PostgreSQL服務器,其結構上的查詢如下:GROUP BY和ORDER BY不同列上

SELECT col1, SUM(col2) GROUP BY col1 ORDER BY colNotInSelect; 

我曾嘗試包括colNotInSelect在GROUP BY子句中,但因爲它是一個具有不同價值的列,它首先破壞了使用GROUP BY的目的。

任何幫助表示讚賞。

+1

因爲它是不同的,*你想要的* colNotInSelect的價值? –

+0

我不想要colNotInSelect的任何值。我只是想用它來排序查詢返回的記錄。 –

+1

你想在排序中使用哪一個? –

回答

1

您無法按該列進行排序,因爲它可能對col1的每個值都有許多值。

但是,您可以將聚合函數應用於該列,並按順序排序。

例如:

SELECT col1, 
     SUM(col2) 
GROUP BY col1 
ORDER BY MIN(colNotInSelect); 
0

您的問題實際上沒有意義,因爲行按col1分組,因此分組行中沒有colNotInSelect。嘗試訂購前聚集colNotInSelect,例如:

SELECT col1, SUM(col2), AVG(colNotInSelect) as col3 GROUP BY col1 ORDER BY col3; 

如果它不適合您的需求,也許你應該清楚自己在做什麼。