У меня есть такая таблица mysql
+--------------+--------+------------+
| restaurantid | rating | customerid |
+--------------+--------+------------+
Я хотел бы найти средний мировой рейтинг только тех ресторанов, которые просмотрел конкретный клиент, используя avg (рейтинг) в sql запрос.
Например:
SELECT avg(rating) FROM ratings WHERE customerid=17.
Но этот же ресторан будет проверяться и другими. Таким образом, приведенный выше запрос вычисляет среднее значение только по строкам для customerid = 17, а не для учета других людей, которые могли оценить ресторан.
Я бы хотел, чтобы среднее значение было средним для всех клиентов, а не только для клиента №17. Но я бы хотел показать только строки для клиента №17. Один и тот же клиент может проверять один ресторан несколько раз.
Например:
+--------------+--------+------------+
| restaurantid | rating | customerid |
+--------------+--------+------------+
| 1 | 2 | 34 |
| 2 | 3 | 35 |
| 3 | 1 | 17 |
| 4 | 2 | 5 |
| 5 | 2 | 17 |
| 3 | 4 | 17 |
| 8 | 3 | 4 |
| 3 | 5 | 88 |
+--------------+--------+------------+
Теперь я хочу получить (средний рейтинг для всех, кто оценил конкретный ресторан)
+--------------+--------+------------+
| restaurantid | rating | customerid |
+--------------+--------+------------+
| 3 | 3.4 | 17 |
| 5 | 2 | 17 |
+--------------+--------+------------+
Но вот что я получаю (средняя оценка по 2 строкам для 2 оценок ресторана №3, предоставленных клиентом № 17)
+--------------+--------+------------+
| restaurantid | rating | customerid |
+--------------+--------+------------+
| 3 | 2.5 | 17 |
| 5 | 2 | 17 |
+--------------+--------+------------+