Mam tabelę kont i tabelę rekordów, w których konta mają wiele rekordów. Chciałbym podzielić sumy kont na zakres "liczby rekordów". To znaczy. Pokaż podziałMySQL i CASE WHEN z zakresem wartości
Count of Records | Count
=========================
0-25 | 100
25 - 50 | 122
50 - 100 | 300
Etc.
używam następujące kwerendy, ale nie mogę zmusić go do grupy przez „GRP”, który jest to, co chcę, żadnej pomocy na najlepszej drodze do modyfikować zapytanie?
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
uzyskać ERROR 1111 (HY000): Nieprawidłowe korzystanie z funkcji grupowej używam MySQL 5.1 Dzięki! – kickdaddy
Przepraszamy, ponieważ używasz kolumn 'r.Account_id' i' a.id' w głównej części zapytania sql, musisz również uwzględnić te w klauzuli By jako ... Każda kolumna lub wyrażenie, o którym mowa t9o w głównej (preagregacyjnej) części zapytania, która nie jest funkcją agregującą (Sum, Avg, Min, Max, itd.) musi być wymieniona w klauzuli By. –
Nie widzę sposobu użycia wartości COUNT (*) wewnątrz klauzuli GROUP BY. Czy to możliwe? –