Это простой агрегатный запрос.
Предполагая, что таблица называется books
и что ее столбцы имеют имена name
, id
и no_copies
, вы должны go:
select name, id, sum(no_copies) total_no_copies
from books
group by name, id
Вы можете легко сгенерировать ожидаемую фразу, используя конкатенацию строк - хотя эта задача лучше подходит для вашего приложения:
select
name,
concat(
id,
' has ',
sum(no_copies),
case when sum(no_copies) = 1 then ' copy' else ' copies' end
) info
from books
group by name, id