我想规范化一列。 (=除以sum()) 我尝试过:
select @w:=sum(lastprice), lastprice/@w
from aktien
GROUP BY TradeDate;
,但第二选择部分始终为NULL。 如何才能做到这一点 ? 沃尔特
答案 0 :(得分:1)
您将获得NULL
,因为MySQL不保证在SELECT
子句中对用户定义的变量进行求值的顺序。另外,您试图实现的是无效的聚合;您将需要首先在单独的子查询(派生表)中计算SUM()
,然后将其重新加入以计算归一化值:
SELECT a.TradeDate,
a.lastprice,
a.lastprice/b.sum_last_price AS normalized_last_price
FROM aktien AS a
JOIN (SELECT TradeDate, SUM(lastprice) AS sum_last_price
FROM aktien
GROUP BY TradeDate) b ON b.TradeDate = a.TradeDate