我想在PostgreSQL中獲取MAX(SUM()),這在PostgreSQL中是不可能的。我試圖通過任何方法獲得結果,但無法獲得理想的結果。我的表是這樣的 -如何計算postgresql中的MAX(SUM()),尤其是查詢
CREATE TABLE user_transactions ( id integer NOT NULL, user_id bigint, credit_rupee numeric, created_at timestamp without time zone, );
這是樣本數據
id credit_rupee user_id date 1 30 72873 2015-03-25 2 10 76296 2015-03-25 3 3 73130 2015-03-26 4 2 73142 2015-03-26 5 8.44 73145 2015-03-26 6 2 72911 2015-03-26 7 5 73158 2015-03-26 8 10 73067 2015-03-26 9 2 76296 2015-03-26 10 1 76296 2015-03-27 11 5.5 73042 2015-03-27 12 2 73042 2015-03-27
在這方面,我想用某一天credit_rupee的最高和用戶。
我想要的結果是
user_id max date 72873 30 2015-03-25 73067 10 2015-03-26 73042 5.5 2015-03-27
問題是我不能選擇全部三個USER_ID,MAX(),沒有GROUP日期按日期和user_ID的,這使得它很難在上面提到的結果到達。
我已經嘗試了許多組合像 SELECT MAX(sum),user_id,date FROM( SELECT SUM(credit_rupee),user_id,DATE(created_at) FROM user_transactions GROUP BY user_id,DATE(created_at) ORDER BY DATE(created_at)) as m GROUP BY date ORDER BY date;
SELECT DISTINCT(user_id),max,date from( SELECT MAX(sum),user_id,date FROM( SELECT SUM(credit_rupee),user_id,DATE(created_at) FROM user_transactions GROUP BY user_id,DATE(created_at) ORDER BY DATE(created_at)) as m GROUP BY DATE,user_id ORDER BY date) as x GROUP BY date,user_id
等,但不過不管試圖無法得到我想要的結果。 任何人都可以幫助我如何得出結果嗎? 感謝
Clodoaldo Neto,我試過你這樣的查詢'SELECT DISTINCT ON(1,2)date,user_id,credit_rupee from( SELECT user_id,date,MAX(sum)as credit_rupee FROM( SELECT SUM(credit_rupee),user_id, DATE(created_at)FROM user_transactions WHERE status = 3 GROUP BY user_id,DATE(created_at)ORDER BY DATE(created_at))as m GROUP BY 1,2)as x order by date,user_id,credit_rupee desc'但它的類似什麼,我已經試過我沒有在這個問題 – vrOom
像這種'選擇日期,USER_ID此之前提到其中,MAX從( \t SELECT MAX(總和),USER_ID,日期FROM( \t \t SELECT SUM(credit_rupee) user_id,DATE(created_at)FROM user_transactions \t \t GROUP BY user_id,DATE(created_at)ORDER BY DATE(created_at))as m \t GROUP BY DATE,user_id ORDER BY date)as x' does not fetch the result as required – vrOom