mySQL Запрос, чтобы перечислить количество комментариев, которые мой сайт получал каждый день? - PullRequest
6 голосов
/ 30 марта 2009

Я управляю онлайн-журналом и хотел бы очень простой способ отследить 3 показателя:

  1. Сколько комментариев оставляется каждый день.
  2. Сколько ссылок отправляют мои пользователи.
  3. Сколько новых членов я получаю каждый день.

Эта информация - вся моя база данных, я просто не знаю, как ее получить.

У меня есть таблица "комментариев" с 3500 комментариями. Каждый комментарий получает строку в таблице. Один из столбцов в таблице - это отметка времени.

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

Как бы выглядел этот запрос? Я думаю, что смогу выяснить другие, если бы у меня работал первый.

Ответы [ 2 ]

7 голосов
/ 30 марта 2009

Этот фрагмент будет отображать ваши результаты в тематической таблице:

$sq = 'SELECT COUNT(*) cnt, DATE(FROM_UNIXTIME(timestamp)) day '
    . 'FROM {comments} c '
    . 'GROUP BY 2 '
    . 'ORDER BY 2 DESC';
$q = db_query($sq);
$stats = array();
while ($o = db_fetch_object($q)) {
  $stats[$o->day] = array($o->day, $o->cnt);
}
return theme('table', NULL, $stats));

Использование DATE (отметка времени) не работает, поскольку comments.timestamp имеет формат UNIX_TIMESTAMP, тогда как DATE () ожидает дату ASCII.

0 голосов
/ 30 марта 2009

Используйте функцию date_format () для форматирования дат;

select count(id) as commentCount, date_format(dateColumn, '%Y-%m-%d') as commentDate
from yourTable
group by commentDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...