계정에 여러 레코드가있는 계정 테이블과 레코드 테이블이 있습니다. 나는 "기록의 수"범위로 계좌 총액을 나누고 싶습니다. 나는.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
죄송 합니다만, SQL 쿼리의 주요 부분에서'r.Account_id'와'a.id' 열을 사용하기 때문에 Group By 절에도 이들을 포함시켜야합니다 ... 모든 열 또는 표현식이 t9o를 참조했습니다. 집계 함수 (Sum, Avg, Min, Max 등)가 아닌 쿼리의 기본 (사전 집계) 부분에있는 Bye 그룹에 언급되어야합니다. –
GROUP BY 절 내부에서 COUNT (*)를 사용하는 방법을 알지 못합니다. 이것은 가능한가? –