gpt4 book ai didi

mysql - 在子查询中使用别名

转载 作者:行者123 更新时间:2023-11-30 01:30:32 34 4
gpt4 key购买 nike

我正在运行以下查询来获取投资组合的未平仓头寸:

SELECT SUM(trades.quantity) as total_quantity, SUM(trades.price) as total_cost, SUM(trades.price)/SUM(trades.quantity) as cost_per_share,           
trades.ticker, tickers.code
FROM (trades)
LEFT JOIN tickers
ON trades.ticker = tickers.id
GROUP BY tickers.code
HAVING total_quantity > 0
ORDER BY tickers.code

我想添加一个额外的列来显示职位的权重,即:

total_cost/SUM(total_cost) -- Dividing any given position cost by the total cost of the portfolio

由于别名不能在计算中使用,我想我需要使用子查询。我尝试了一些方法,但未能成功。

有人能解释一下吗?子查询是可行的方法吗?还有其他更好的方法吗?

最佳答案

不确定您的查询(您似乎正在对 LEFT JOINed 表中的字段进行 GROUP BY,对于未找到的匹配行,该字段可能为空),但可能交叉联接到子查询以获取所有数据的总计价格

SELECT total_quantity, total_cost, cost_per_share, trades.ticker, tickers.code, total_cost/total_of_prices
FROM
(
SELECT SUM(trades.quantity) as total_quantity, SUM(trades.price) as total_cost, SUM(trades.price)/SUM(trades.quantity) as cost_per_share,
trades.ticker, tickers.code
FROM trades
LEFT JOIN tickers
ON trades.ticker = tickers.id
GROUP BY tickers.code
HAVING total_quantity > 0
) Sub1
CROSS JOIN
(
SELECT SUM(price) as total_of_prices
FROM trades
WHERE quantity > 0
) Sub2
ORDER BY tickers.code

关于mysql - 在子查询中使用别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17524781/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com