我有一個帳戶表和一個記錄表帳戶有多個記錄。我想通過「記錄數」範圍來分解帳戶總數。即顯示的MySQL和CASE WHEN與值範圍
Count of Records | Count
=========================
0-25 | 100
25 - 50 | 122
50 - 100 | 300
等等
擊穿我使用下面的查詢,但我不能用「GRP」,這是我想要的,在最好的方式任何幫助得到它的組修改查詢?
SELECT count(*) as ct,
CASE
WHEN COUNT(*) < 25 THEN '1-25'
WHEN COUNT(*) >= 25 < 50 THEN '25-50'
WHEN COUNT(*) >= 50 < 100 THEN '50-100'
WHEN COUNT(*) >= 100 < 250 THEN '100-250'
WHEN COUNT(*) >= 250 < 500 THEN '250-500'
WHEN COUNT(*) >= 500 < 1000 THEN '500-1000'
ELSE '1000+'
END AS grp
FROM records r,accounts a
WHERE r.account_id=a.id
ORDER BY ct
我得到 ERROR 1111(HY000):無效使用組功能的 我使用的MySQL 5.1 謝謝! – kickdaddy 2010-05-26 14:56:32
對不起,因爲您在sql查詢的主要部分使用了'r.Account_id'和'a.id'這兩列,所以您需要將它們包括在組By子句中。每列或表達式都被引用t9o在不屬於聚合函數(Sum,Avg,Min,Max等)的查詢中的主要(聚合前)部分必須在組By子句中提及。 – 2010-05-26 19:06:12
我看不到如何在GROUP BY子句中使用COUNT(*)。這甚至有可能嗎? – 2015-02-11 01:07:24