Я бы хотел использовать несколько столбцов GROUP BY, я думаю, что лучше начать с примера:
SELECT
eventsviews.eventId,
showsActive.showId,
showsActive.venueId,
COUNT(*) AS count
FROM eventsviews
INNER JOIN events ON events.eventId = eventsviews.eventId
INNER JOIN showsActive ON showsActive.eventId = eventsviews.eventId
WHERE events.status = 1
GROUP BY showsActive.venueId, showsActive.showId, showsActive.eventId
ORDER BY count DESC
LIMIT 100;
Вывод:
| *eventId* | *showId* | *venueId* | *count* |
+-----------+----------+-----------+---------+
[...snip...]
| 95 | 92099 | 9770 | 32 |
| 95 | 105472 | 10702 | 32 |
| 3804 | 41225 | 8165 | 17 |
| 3804 | 41226 | 8165 | 17 |
| 923 | 2866 | 5451 | 14 |
| 923 | 20184 | 5930 | 14 |
[...snip...]
Что бы я хотел вместо этого:
| *eventId* | *showId* | *venueId* | *count* |
+-----------+----------+-----------+---------+
| 95 | 92099 | 9770 | 32 |
| 3804 | 41226 | 8165 | 17 |
| 923 | 20184 | 5930 | 14 |
Итак, я хочу, чтобы мои данные были сгруппированы по eventId, но только один раз для каждого showId и venueId ...
У меня фактически есть SQL-запрос, который делает это, но он имеет 8подзапросы и такие же медленные, как T-Ford ... И так как это выполняется при каждой загрузке страницы, ускорение выглядит как хорошая идея!
Есть несколько вопросов, таких какэто, и я пробовал много разных вещей, но я был на этот запрос в течение часа, и я не могу заставить его работать так, как я хочу: - (
Спасибо!