0

我想在结构如下的 POSTGRESQL 服务器上执行查询:

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

我试图将colNotInSelect包含在 GROUP BY 子句中,但由于它是具有不同值的列,因此它首先破坏了使用 GROUP BY 的目的。

任何帮助表示赞赏。

4

2 回答 2

3

您不能按该列排序,因为它可能对 col1 的每个值都有许多值。

但是,您可以将聚合函数应用于列,并按此排序。

例如:

SELECT   col1, 
         SUM(col2)
GROUP BY col1
ORDER BY MIN(colNotInSelect);
于 2013-10-04T07:38:27.247 回答
0

您的问题实际上没有意义,因为行是按 col1 分组的,因此分组的行中没有 colNotInSelect 。尝试在订购前聚合 colNotInSelect,例如:

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

如果它不符合您的需要,也许您应该澄清您在做什么。

于 2013-10-04T07:38:09.633 回答