也许我只是不知道如何正确地搜索它,或者这种技术是否有点名称,但我认为我想要做的事情必须相对简单,我以前从未做过
select
sum(miles) as totalMiles
,sum(events) as events
,round(sum(events)/(sum(miles)/1000),1) as events_per1k
from ...
所以,您可以看到我已经有了totalMiles和事件,然后必须将它们相加以计算第3列值。
我是否可以在不必再次sum(miles)
和sum(events)
的情况下获得第3列值?
这样的事情?
select
sum(miles) as totalMiles
,sum(events) as events
,round((val:col2)/((val:col1)/1000),1) as events_per1k
from ...
答案 0 :(得分:1)
您无法直接在SELECT中引用它们,但可以将它们包装在子查询中:
SELECT
ROUND( i.events / (i.totalMiles / 1000), 1) as events_perlk
FROM (
SELECT
sum(miles) as totalMiles,
sum(events) as events
FROM
...
) i;
可能有一个比这更高效的解决方案,但这很简单,并且可以完成这项工作。
SQLFiddle:http://sqlfiddle.com/#!2/b086d8/2(猜测您的架构)