Для этого вам не нужен подзапрос, поскольку MySQL позволяет использовать псевдонимы столбцов в group by
(не все базы данных это делают).Итак:
Select customer_id,
(case when call_details = 'International'
then 'International Calls'
else 'National Calls'
end) as call_group,
sum(minutes)
from call_minutes
where date between '$from' and '$to'
group by customer_id, call_group;
Примечание: это предполагает, что вы хотите отдельные строки для каждого клиента.Если нет, удалите customer_id
как из select
, так и из group by
:
Select (case when call_details = 'International'
then 'International Calls'
else 'National Calls'
end) as call_group,
sum(minutes)
from call_minutes
where date between '$from' and '$to'
group by call_group;
Если вы хотите получить список идентификаторов клиентов в каждой группе, вы всегда можете добавить group_concat(customer_id)
.