упрощенный пример проблемы, я пытаюсь решить:Mysql агрегирование данных с тем, если оператор
EDIT - С ПК
sqlfiddle: http://sqlfiddle.com/#!2/7be5d/1
---
У меня есть две таблицы:
People
--------
| Name |
--------
| Mike |
| Jim |
| Fred |
--------
HasBanana
------------------------
| Name | Has_a_banana |
------------------------
| Mike | N |
| Mike | N |
| Mike | N |
| Mike | N |
| Mike | Y |
| Mike | N |
| Jim | N |
| Jim | N |
| Jim | Y |
| Jim | N |
| Jim | N |
| Fred | N |
| Fred | N |
| Fred | N |
| Fred | N |
| Fred | N |
| Fred | N |
------------------------
И запрос:
select * from People
left join HasBanana on HasBanana.name = People.name;
Это создает таблицу точно так же, как таблица HasBanana выше. То, что я хотел бы создать, - это таблица, сгруппированная по People.name и показывающая Y, если человек когда-либо был отмечен как имеющий банан.
Так что-то вроде этого:
HadBanana
------------------------
| Name | Had_a_banana |
------------------------
| Mike | Y |
| Jim | Y |
| Fred | N |
------------------------
Я знаю, что я могу использовать следующее группировать по имени
group by people.name;
, но возникают проблемы, делающие логику сказать для каждого имени, если has_a_banana никогда не было Y затем установите has_a_banana в Y.
У вас нет рк. это проблематично – Strawberry
@Strawberry Я не разместил реальный стол, с которым я действительно работаю. Только упрощенная таблица, чтобы проиллюстрировать мою точку зрения. Будет добавлен один, хотя если это действительно необходимо для решения ... – onmylemon