在下表中,我想減去購買的總股數和每個符號的賣出總股數。
TABLE transactions
-------- -------- -------------------- -------- --------- --------- ---------------------
| t_type | symbol | name | shares | t_price | t_value | t_date |
-------- -------- -------------------- -------- --------- --------- ---------------------
| buy | aapl | Apple Inc | 10 | 159.61 | 1596.1 | 2022-02-24 18:51:22 |
| buy | gold | Barrick Gold Corp. | 20 | 22.735 | 454.7 | 2022-02-24 18:51:44 |
| sell | aapl | Apple Inc | 5 | 158.715 | 793.575 | 2022-02-24 19:04:51 |
| sell | gold | Barrick Gold Corp. | 2 | 22.54 | 45.08 | 2022-02-25 10:15:29 |
| sell | gold | Barrick Gold Corp. | 1 | 22.86 | 22.86 | 2022-02-25 10:16:04 |
-------- -------- -------------------- -------- --------- --------- ---------------------
例如 id 我首先做的:
SELECT t_type, symbol, shares FROM transactions WHERE user_id = 14 AND t_type = "buy";
-------- -------- --------
| t_type | symbol | shares |
-------- -------- --------
| buy | aapl | 10 |
| buy | gold | 18 |
-------- -------- --------
然后
SELECT t_type, symbol, shares FROM transactions WHERE user_id = 14 AND t_type = "sell";
-------- -------- --------
| t_type | symbol | shares |
-------- -------- --------
| sell | aapl | 5 |
| sell | gold | 2 |
| sell | gold | 1 |
-------- -------- --------
有沒有辦法減股?
uj5u.com熱心網友回復:
您可以嘗試使用條件聚合函式,SUM并CASE WHEN 根據您的邏輯,buy成為正股,sell成為負股
SELECT symbol,SUM(CASE WHEN t_type = 'buy' THEN shares
WHEN t_type = 'sell' THEN - shares
ELSE 0 END)
FROM transactions
WHERE user_id = 14
GROUP BY symbol
結果:
| symbol | totalshares |
|--------|-------------|
| aapl | 5 |
| gold | 17 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434088.html
上一篇:在第一組INSERTS之后,使用SQLINSERT激活的記錄迭代停止,但使用PRINT進行測驗會遍歷每條記錄(根據需要)
下一篇:嘗試使用FastAPI/SQLitePOST時獲取(sqlite3.IntegrityError)NOTNULL約束失敗
