Учитывая эту таблицу:
| i | x |
+---+---+
| 1 | A |
| 2 | A |
| 3 | B |
| 4 | B |
| 5 | B |
| 6 | B |
| 7 | A |
| 8 | A |
| 9 | A |
Как можно сгруппировать строки, которые имеют одинаковую букву (в столбце x), чтобы получить следующий вывод?
| x | c |
+---+---+
| A | 2 |
| B | 4 |
| A | 3 |
Кроме того, я хотел бы вывести количество строк, которые были сгруппированы (показано в столбце c).
Я пробовал следующий запрос SQL:
SELECT x, count(*) c
FROM table_name
GROUP BY x
Этот запрос группирует все строки с одинаковым значением, и это не то, что я хочу, потому что результат не соответствует желаемому. Обе группы А сгруппированы в одну вместо того, чтобы держать их отдельно.
| x | c |
+---+---+
| A | 5 |
| B | 4 |