我有一张包含以下信息的表格:
_______________________________________________________
| fundName | stockName | numShares | price |
_______________________________________________________
| Sunshine | Enron | 10 | $5 |
| Sunshine | Lehman | 40 | $10 |
| Brightsky | BearStearns | 20 | $3 |
| Pillar | GM | 100 | $30 |
| Pillar | Chrysler | 80 | $22 |
| Pillar | Bricklin | 200 | $2 |
我需要编写一个查询,该查询将返回一个表格,其中包含一列中所有资金的名称,以及基金中股票的平均股票价值。平均值应加权,即如果特定基金中有80股A公司股票和20股B公司股票,则A公司的平均股票价值应加权80%。
例如,对于上表,我想得到结果:
___________________________________
| fundName | avgSharePrice |
___________________________________
| Sunshine | $9 |
| Brightsky | $3 |
| Pillar | $13.58 |
答案 0 :(得分:3)
select fundName , sum(numShares * price) / sum (numShares) avgSharePrice
from stock_info
group by fundName
答案 1 :(得分:2)
试试这个:
SELECT fundName, sum(numShares * price) / sum(numShares) AS avgSharePrice
FROM table GROUP BY fundName;