嗯,我知道我们可以使用临时表从select语句中按列隐藏顺序。只是想知道如何不使用临时表
由于我工作的数据库非常庞大,因此添加临时表会大大影响查询性能。
我的查询如下:
SELECT DISTINCT
Col1,
MAX(Col2),
MAX(Col3),
Col4
FROM
Table1
Group By
Col4,
Col1
Order By
Col4
现在我想要的是在不使用临时表的情况下从输出中删除Col4。使用内部查询甚至无法做到这一点。感谢。
答案 0 :(得分:0)
通常,排序列不需要包含在选择列表中。这是一个常见的操作 - 不需要显式临时表。
select color from fruit order by weight
答案 1 :(得分:0)
如果您的 Col4 是经过计算/派生的并且必须是原始选择,则可以简单地进行outer
查询:
SELECT G.Col1, G.C2, G.C3 from
(SELECT DISTINCT
Col1,
MAX(Col2) AS C2,
MAX(Col3) AS C3,
Col4
FROM
Table1
Group By
Col4,
Col1
Order By
Col4) AS G