2015-06-27 119 views
1

我開發一個庫存管理應用程序,投資組合登記表有4列,除日期和registry_key等,它看起來像這樣:MYSQL SELECT DISTINCT用SUM

---------------------------------------- 
| stock_key | user_key | units | price | 
---------------------------------------- 
| fund_a | user_1 | 1000 | 100.35| 
| fund_c | user_2 | 4000 | 101.55| 
| fund_d | user_3 | 2000 | 105.65| 
| fund_a | user_1 | 1500 | 101.45| 
| fund_b | user_1 | 500 | 103.35| 
---------------------------------------- 

我要選擇的投資組合user_1具有不同的stock_key。例如:

對於USER_1的結果應該是:

[ 
    {fund_key: "fund_a", units: sum(1000,1500), price: sum(100.35,101.45)}, 
    {fund_key: "fund_b", units: 500, price: 103.35} 
] 

希望這個問題是可以理解的。謝謝。

二期

怎麼樣,我需要的價格作爲支付了單位數的累計總額。因此,對於USER_1的結果會是這樣:

[ 
    {fund_key: "fund_a", units: sum(1000,1500), price: sum(1000*100.35,1500*101.45)/sum(1000,1500)}, 
    {fund_key: "fund_b", units: 500, price: 103.35} 
] 

,因爲一旦用戶帶來了相同的股票較多的個股以更低/更高的價格比以前積累的股票價格被平均掉這一點很重要。

謝謝。

回答

0

所以嘗試:

SELECT stock_key, SUM(units), SUM(units * price)/SUM(units) 
FROM Portfolio 
WHERE user_key = 'user_1' 
GROUP BY stock_key; 
+0

感謝的人!乾杯.. –

+0

請檢查編輯,我已經添加了另一層困難。謝謝。 –