我想标准化一列。 (= 除以 sum()) 我试过这个:
select @w:=sum(lastprice), lastprice/@w
from aktien
GROUP BY TradeDate;
但第二个选择部分始终为 NULL。 如何才能做到这一点 ? 沃尔特
最佳答案
您将得到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
关于mysql - 如何将组声明与计算结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957175/