Select
SQLite基於數組返回重複行的總和
如果我有一個
fruits
如下所示的簡單表:+---+---------+------+ | | name | lbs | +---+---------+------+ | 1 | apple | 0.25 | | 2 | melon | 3.00 | +---+---------+------+
在查詢中,我需要返回
lbs
基於數組的總和。例如,我可以讓數組('melon', 'melon', 'apple')
返回值6.25
。像這樣的查詢不起作用:
SELECT SUM(lbs) FROM fruits WHERE name IN ('melon', 'melon', 'apple');
它返回
3.25
是因為即使melon
列出了兩次,它也只計算一次。如何讓
select
語句按照給定數組的要求對重複行求和?我對 StackExchange 進行了很多搜尋,但也許我沒有使用正確的關鍵字來找到答案。提前感謝您的幫助/耐心。
使用所需名稱創建一個(虛擬)表,然後將其與實際表連接:
WITH my_array(name) AS ( VALUES ('melon'), ('melon'), ('apple') ) SELECT SUM(lbs) FROM fruits JOIN my_array USING (name);