gpt4 book ai didi

mysql - 跨多个表的SQl查询计算

转载 作者:行者123 更新时间:2023-11-29 04:54:25 27 4
gpt4 key购买 nike

好的,我现在有 3 个数据库表:

  • 用户
    • 编号:1、2
    • 姓名:用户 1、用户 2
  • 公司
    • 编号:1、2、3
    • 股价:10.00、0.45、5.98
  • 投资组合
    • user_id: 1, 1, 2
    • 公司编号:1, 2, 1
    • amount_of_shares:200、100、30

如您所知,这是一个基本的股票市场模拟。我需要根据他们的总投资组合值(value)获得前 5 名用户,这些值(value)是这样计算的:

companies.share_price * portfolio.amount_of_shares

请记住,一个用户可以在他的投资组合中拥有多家公司的股票,选择所有数据然后在 PHP 中循环遍历它似乎是一种浪费,因为理论上我可以拥有大约 200 家公司......所以我想知道是否可以编写一个 SQL 查询来计算每家公司所持股票的值(value),然后将所有这些值加起来只产生一个变量,这样我就可以执行 ORDER BY 和 LIMIT 5(获得 Top5 表现者)

编辑:我正在为这个项目使用 CodeIgniter,如果这有影响的话。

最佳答案

SELECT *, SUM(amount_of_shares*c.share_price) as total FROM `portfolios`
LEFT JOIN companies c ON c.id = portfolios.company_id
GROUP BY `user_id`
ORDER BY total DESC
LIMIT 5

关于mysql - 跨多个表的SQl查询计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8029334/

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