0
我無法弄清楚如何使用ORDER BY子句排序我的一些結果。我使用的是PostgreSQL,我有一個表記錄用戶在我的應用程序中執行的操作。它記錄user_id,message_date,message_subject。這是我從該表中選擇當前的SQL語句:SQL高級排序使用ORDER BY
SELECT
message_subject,
count (message_subject) AS message_count,
user_id,
message_date,
FROM
view_app_message
WHERE
message_date >= $P{FROM} AND message_date <= $P{TO} AND
belongs_to IN ($P{RESTAURANT_IDS})
GROUP BY
message_date,
user_id,
message_subject
ORDER BY
message_date,
user_id,
message_count DESC
這給我的結果看起來像這樣:
message_subject | message_count | user_id | message_date
login | 2 | 1 | 2014.04.01
error | 1 | 1 | 2014.04.01
payment | 1 | 1 | 2014.04.01
login | 7 | 2 | 2014.04.01
error | 5 | 2 | 2014.04.01
login | 10 | 1 | 2014.04.02
error | 9 | 1 | 2014.04.02
login | 2 | 2 | 2014.04.02
payment | 1 | 2 | 2014.04.02
我要的是總的所有message_count
訂購這些記錄s爲每個用戶。例如用戶1已經從2014年4月1日4個消息和用戶2具有12用戶2的記錄應該像這樣進行排序下降前的用戶1的記錄:
message_subject | message_count | user_id | message_date
login | 7 | 2 | 2014.04.01
error | 5 | 2 | 2014.04.01
login | 2 | 1 | 2014.04.01
error | 1 | 1 | 2014.04.01
payment | 1 | 1 | 2014.04.01
我無法弄清楚,因爲我傻了。請有人幫助我嗎? :d
感謝您的答覆戈登。這個查詢對我不起作用,而且我從DB獲得以下錯誤:'ERROR:column「message_count」does not exist LINE 26:sum(message_count),'看來我不能使用PostgreSQL:http ://www.postgresql.org/message-id/[email protected] – 2014-09-25 07:57:47
Ooooop!好吧,我簡單地使用了我的大腦,並能夠正常工作。而不是'sum(message_count)'我做了'sum(count(message_subject))'而不是那個工作。如果您更新答案以獲得有關如何使用別名列的小細節(或者您自己的解決方案),我會接受您的答案! – 2014-09-25 08:23:26
@DavidJacob。 。 。這將是「通過」查詢的正確表述。 – 2014-09-25 11:40:17