2017-06-21 66 views
1

enter image description here查詢具有鮮明和group by

如何獲得9300只出上表的?我只需要添加6500 + 1800 + 1000

這裏是我當前的查詢

SELECT 
SUM(e.amount)/(SELECT count(e2.receipt_no) 
       FROM entries e2 
       WHERE e2.receipt_no = e.receipt_no) as total, 
e.user_id 
FROM 
entries e 
GROUP BY e.receipt_no 

結果是

enter image description here

現在我需要得到每user_id

預期產量應爲

enter image description here

+0

PLZ告訴你需要 – Shibon

+0

'GROUP BY DISTINCT e.receipt_no' –

+0

@JaydipJ它在GROUP BY e.receipt_no添加不同的 – Kiel

回答

1

從我的理解這應該給你想你想

SELECT sum(DISTINCT amount) as total, reciept_no FROM entries GROUP BY receipt_no

1

嘗試這樣

SELECT SUM(DISTINCT(amount)) as total, user_id FROM `entries` GROUP BY user_id 
+0

謝謝這個作品爲這種情況下,如何對同一數量的2收據:( – Kiel

+0

上述查詢將總結每個用戶的唯一金額 – Shibon

1

一些東西試試這個

SELECT SUM(amount) as total,user_id FROM entries GROUP BY user_id 
+0

對不起,但它總結了來自用戶行的所有金額,但我需要從收據中首先獲取不同的金額,然後將其與其他收據的金額相加。 – Kiel

+0

嗯,然後@Shibon的答案將工作 – jarg

1

首先計算DISTINCT量按用戶組重新分組ceipt_no然後USER_ID有條目組的總和:

SELECT sum(total),userid from (SELECT sum(DISTINCT amount) as total, 
userid,receipt_no FROM entries GROUP BY userid,receipt_no) as rgrouped 
GROUP BY userid 
0

你也可以試試這個

SELECT user_id, SUM(DISTINCT `amount`) FROM `test` group by `user_id` 

第1步:爲每個用戶ID選擇不同的量

101 - 6500,1800,1000 
189 - 1019.00 

步驟 - 2

101 = 6500+1800+1000 = 9300.00 
189 = 1019.00 

T他將爲每個用戶ID選擇distinct金額,然後添加選定的金額並給出相同的結果。