![](/img/trans.png)
[英]Multiple Calculations in SQL SELECT Query from Multiple Tables using Where?
[英]SQl query calculations across multiple tables
好的,我現在有3個數據庫表:
你知道,這是一個基本的股市模擬。 我需要根據他們的總投資組合價值獲得前5名用戶,其計算方式如下:
companies.share_price * portfolios.amount_of_shares
請記住,1個用戶可以從他的投資組合中的多個公司獲得股票,選擇所有數據然后在PHP中循環它似乎是浪費,因為理論上我可能有大約200家公司...所以我想知道是否可以編寫一個SQL查詢來計算每個公司所擁有的股票的價值,然后將所有這些值加起來只產生一個變量,這樣我就可以做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
select u.name, sum(c.share_price * p.amount_of_shares) as total
from portfolios p
inner join companies c on p.company_id = c.id
inner join users u on p.user_id = u.id
group by u.name
order by total desc
LIMIT 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.