我想在POSTGRESQL服务器上执行查询,其结构如下:
SELECT col1, SUM(col2) GROUP BY col1 ORDER BY colNotInSelect;
我试图在GROUP BY子句中包含 colNotInSelect ,但由于它是一个具有不同值的列,因此它首先无法使用GROUP BY。
感谢任何帮助。
答案 0 :(得分:2)
您不能按该列排序,因为它可能对col1的每个值都有很多值。
但是,您可以将聚合函数应用于列,并按此顺序排序。
例如:
SELECT col1,
SUM(col2)
GROUP BY col1
ORDER BY MIN(colNotInSelect);
答案 1 :(得分:0)
您的问题实际上没有意义,因为行按col1分组,因此分组行中没有colNotInSelect。尝试在订购前聚合colNotInSelect,例如:
SELECT col1, SUM(col2), AVG(colNotInSelect) as col3 GROUP BY col1 ORDER BY col3;
如果不符合您的需要,也许您应该澄清您正在做的事情。