[英]Select one value of column, corresponding with distinct value of other column
voucherId value balance
1 100 20
2 300 120
3 500 220
orderId voucherId ordertouserId
1 1 1
2 3 2
3 2 1
4 1 1
2 2 2
我有兩張餐券和訂單。 我想要
select sum(value)
from vouchers with distinct orderid
group by ordertouserId
我不確定該怎么做。
該查詢:
select o.ordertouserId, count(o.order_id) as Orders, sum(v.value) as Total_value
from vouchers v
join orders o on o.voucher_id = v.voucher_id
group by o.ordertouserId
給出結果:
ordertouserId Orders Total_value
1 3 500
2 2 1000
但是我想選擇與distinct o.orderId
對應的sum(v.value)
作為Total_value
。
所需結果:
ordertouserId Orders Total_value
1 3 500
2 1 500
在所需的輸出中,ordertouserId = 2顯示voucherId = 3的Total_value。如何確定不希望顯示voucherId = 2的Total_value?
抱歉,這不是答案,但是我沒有足夠的“信譽”來發表關於該問題的評論。 為了更好地了解您如何為ordertouserId = 2選擇Total_value = 500(而不是Total_value = 300),我的答案必須是:
無法獲得所需的輸出,因為沒有明確的方法來確定在ordertouserId = 2的情況下在計算Total_value時應使用哪個voucherId。
順便說一句,我認為在第一個輸出表中有一個錯誤,顯示ordertouserId = 2,Total_value =1000。ordertouserId= 2的TotalValue不應為300 + 500 = 800嗎?
根據您對其他答案的評論建議,我創建了表並運行了查詢。 這就是我所擁有的(它與您在問題中得到的輸出不同)。 順便說一句,您發布的查詢也無法按提供的方式工作,列名中混合使用了駝峰式ID和_id。
我創建了表並運行了查詢。 結果如下:
mysql> select * from vouchers;
+-----------+-------+---------+ | voucherId | value | balance | +-----------+-------+---------+ | 1 | 100 | 20 | | 2 | 300 | 120 | | 3 | 500 | 220 | +-----------+-------+---------+ 3 rows in set (0.00 sec)
mysql> select * from orders;
+---------+-----------+---------------+ | orderId | voucherId | ordertouserId | +---------+-----------+---------------+ | 1 | 1 | 1 | | 2 | 3 | 2 | | 3 | 2 | 1 | | 4 | 1 | 1 | | 2 | 2 | 2 | +---------+-----------+---------------+ 5 rows in set (0.00 sec)
mysql> select o.ordertouserId, count(o.orderId) as Orders, sum(v.value) as Total_value from vouchers v join orders o on o.voucherId=v.voucherId group by o.ordertouserId
+---------------+--------+-------------+ | ordertouserId | Orders | Total_value | +---------------+--------+-------------+ | 1 | 3 | 500 | | 2 | 2 | 800 | +---------------+--------+-------------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.