有时我希望执行连接,从而获取一列的最大值。这样做我必须执行 max() 和 groupby- 这会阻止我从最大的行中检索其他列(因为它们不包含在 GROUP BY 或聚合函数中)。
为了解决这个问题,我将最大值加入原始数据源,以获取其他列。但是,我的问题是这有时会返回不止一行。
所以,到目前为止,我有类似的东西:
SELECT * FROM
(SELECT Col1, Max(Col2) FROM Table GROUP BY Col1) tab1
JOIN
(SELECT Col1, Col2 FROM Table) tab2
ON tab1.Col2 = tab2.Col2
如果上面的查询现在返回三行(与 column2 的最大值匹配),我有点头疼。
如果有一个额外的列 - col3 并且对于上述查询返回的行,我只想返回一个,例如最小 Col3 值 - 我该怎么做?