mysqli count group по нескольким столбцам - PullRequest
0 голосов
/ 12 марта 2019

Я хотел бы посчитать строки на основе участия нескольких столбцов

+----+---------------+--------------+
| ID | ticket_holder | ticket_buyer |
+----+---------------+--------------+
| 1  | jim           | jim          |
+----+---------------+--------------+
| 2  | sue           | gor          |
+----+---------------+--------------+
| 3  | gor           | jim          |
+----+---------------+--------------+
| 4  | nic           | jim          |
+----+---------------+--------------+

Моя таблица заявок выглядит следующим образом, и я хочу вернуть массив, который включает в себя идентификатор каждого человека, но также имеет счетчиксколько шоу они участвуют в качестве покупателя или держателя билета (но не считая дважды для обоих).

Я хочу получить такой массив

+---------+--------------+
| user    | ticket_count |
+---------+--------------+
| jim     | 3            |
+---------+--------------+
| gor     | 2            |
+---------+--------------+
| sue     | 1            |
+---------+--------------+
| nic     | 1            |
+---------+--------------+

1 Ответ

0 голосов
/ 12 марта 2019

Одна вещь, которую вы можете сделать, это подсчитать число каждого человека как владельца билета или покупателя отдельно, и вычесть, где они оба.

Чтобы подсчитать, сколько раз каждый человек является держателем или покупателем, вы можете использовать этизапросы

select count(*), ticket_holder from table group by ticket_holder
select count(*), ticket_buyer from table group by ticket_buyer

Чтобы подсчитать, сколько раз человек является одновременно покупателем и держателем:

select count(*), ticket_buyer from table where ticket_holder=ticket_buyer group by ticket_buyer

Их можно объединить в один запрос, но, возможно, его легче понять и поддерживать, если высделать расчеты вне базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...