Для упрощения я предполагаю, что таблица называется table
и имеет только два столбца stuff
(какой-то идентификатор или строку или что-то еще у вас) и столбец date_viewed
, который содержит дату и времяview.
В этом случае ваш запрос может выглядеть следующим образом:
SELECT stuff, DATE(date_viewed), COUNT(*) AS views FROM `table`
GROUP BY stuff, DATE(date_viewed)
ORDER BY views DESC
Что делает запрос?* Он выбирает stuff
вместе с частью даты из date_viewed
и количеством строк, вычисленных функцией COUNT () и сохраненных под псевдонимом (AS
) имя views
из table
.* Результат затем группируется по stuff
и date
, то есть все записи с одним и тем же элементом («материалом») и датой помещаются в одну строку результатов, а views
содержит количество исходных строк.* Наконец, результат сортируется по (ORDER BY
) количеству просмотров (views
, которое было псевдонимом для COUNT(*)
) в порядке убывания (DESC
), так что строки с большинством представлений идут первыми.