У меня есть таблица вроде этого:Mysql подсчитывать с условием
+---------------+--------+-----------------+
| ReservationID | UserID | ReservationDate |
+---------------+--------+-----------------+
| 1 | 10002 | 04_04_2016 |
| 2 | 10003 | 04_04_2016 |
| 3 | 10003 | 07_04_2016 |
| 4 | 10002 | 04_04_2016 |
| 5 | 10002 | 04_04_2016 |
| 6 | 10002 | 06_04_2016 |
+---------------+--------+-----------------+
Я использую этот запрос, чтобы подсчитать, сколько резервирования каждого моего пользователя есть:
SELECT UserID, COUNT(UserID) as Times FROM mytable GROUP BY UserID ORDER BY Times DESC
И это дает мне этот результат:
+--------+-------+
| UserID | Times |
+--------+-------+
| 10002 | 4 |
| 10003 | 2 |
+--------+-------+
Однако, я хочу сосчитать один, если у моего пользователя более одной брони в определенную дату. Например Пользователь 10002 имеет 3 резервирования на 04-04-2016, это должно быть рассчитывать 1. И я хочу, чтобы получить этот результат:
+--------+-------+
| UserID | Times |
+--------+-------+
| 10002 | 2 |
| 10003 | 2 |
+--------+-------+
Как я могу получить его?
Благодаря
10002 Пользователь имеет 3 резервирование на 04-04-2016, это должно быть рассчитывать 1. Это означает, что должно быть отношение на ReservationDate – berkist34
@ berkist34 - извините, набрал слишком быстро. Я думаю, вам нужно «count (отдельное резервирование)»? – sgeddes
Это сработало. Спасибо – berkist34