Я сейчас работаю над базой данных, и я пытаюсь выбрать некоторые специальные данные. поэтому таблица выглядит так.
name title type
Тип включает в себя два разных значения: "книга" и "бумага".
И это результат, который я хотел бы получить
name book paper
person A 0 1
person B 1 2
person C 0 5
Каков наилучший способ написать запрос в MySQL.
Вы можете использовать условную агрегацию:
SELECT
name,
SUM(CASE WHEN type = 'book' THEN 1 ELSE 0 END) AS book,
SUM(CASE WHEN type = 'paper' THEN 1 ELSE 0 END) AS paper
FROM yourTable
GROUP BY
name;
SUM(IF(type = 'book', 1, 0))
в качестве альтернативы.