SELECT a_id, a_type, COUNT (*) ИЗ Apple GROUP BY a_id, a_type
Это даст вам список различных кортежей a_id и a_type, но вам все равно придется проанализировать список, чтобы объединить этиодного и того же a_id в одну хеш-таблицу.
Или, если вы хотите, за один шаг, агрегировать все по a_id, сделайте это
SELECT a_id,GROUP_CONCAT(type_count)
FROM (SELECT a_id,a_type,CONCAT(a_type,",",COUNT(*)) as type_count
FROM Apple GROUP BY a_id,a_type) as x
GROUP BY a_id;
Это даст вам:
7 Pink Lady,1,Granny Smith,1,Fuji 2
9 Granny Smith,1,Pink Lady,1
По поводу моего комментария: если у вас есть MySQL, это то, что вы получаете
Создавая точную таблицу, которая у вас есть, с точными данными и запустив мой запрос, я получаю следующее.
mysql> SELECT a_id,GROUP_CONCAT(type_count) FROM (SELECT a_id,a_type,CONCAT(a_type,",",COUNT(*)) as type_count FROM Apple GROUP BY a_id,a_type) as x GROUP BY a_id;
| 3 | Fuji,1,Granny Smith,1,Pink Lady,1 |
| 7 | Fuji,2,Granny Smith,1,Pink Lady,1 |
| 9 | Granny Smith,1,Pink Lady,1 |