MySQL считает разные значения в одной таблице

0

Я сейчас работаю над базой данных, и я пытаюсь выбрать некоторые специальные данные. поэтому таблица выглядит так.

name  title  type

Тип включает в себя два разных значения: "книга" и "бумага".

И это результат, который я хотел бы получить

name       book  paper
person A   0     1
person B   1     2
person C   0     5

Каков наилучший способ написать запрос в MySQL.

Теги:

1 ответ

0
Лучший ответ

Вы можете использовать условную агрегацию:

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;
  • 0
    Есть ли способ сделать это без использования кейса
  • 0
    Вы можете использовать SUM(IF(type = 'book', 1, 0)) в качестве альтернативы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню