2012-06-05 2 views
-1

Итак, у меня есть целая партия голосов, поступающих в систему голосования. Я хочу показать, сколько голосов у меня есть в любой день. Но я также хочу, чтобы затем отобразить количество голосов в день и выплюнуть в какой день они проголосовали, т.е. 24k голосов на 05/06/12, 27к голосов на 06/06/12MySQL группируется днем, а затем отображает дату из сгруппированных результатов

SELECT count(*) AS count 
FROM results 
GROUP BY DAY(datesubmitted), YEAR(datesubmitted), MONTH(datesubmitted) 
ORDER BY DAY(datesubmitted) DESC, YEAR(datesubmitted) DESC, MONTH(datesubmitted) DESC 

ли мой запрос, я пытался добавить что-то вроде

ДНЯ (FROM_UNIXTIME (DateSubmitted)), как order_day

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

+1

Ваш первоначальный запрос sql выводит только «счет». Возможно, вам нужно включить DAY(), YEAR() AND MONTH(), чтобы получить выход. – Duniyadnd

+0

очень хорошо, приветствия. Как ни странно, я думал, что сделал это, но, к сожалению, не ... плюс мой заказ означал, что я не получил первые результаты в первую очередь. –

+0

добавил ответ, но это были вы его получили :) –

ответ

-1

Так просто увидел новый ответ, но для я как я получил его работая была:

SELECT count(*) AS count, DAY(datesubmitted) AS newday, 
YEAR(datesubmitted) as newyear ,MONTH(datesubmitted) as newmonth 
FROM results 
GROUP BY DAY(datesubmitted), YEAR(datesubmitted), MONTH(datesubmitted) 
ORDER BY YEAR(datesubmitted) DESC, MONTH(datesubmitted) DESC, DAY(datesubmitted) DESC 

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

0

Количество голосов на определенный день:

SELECT COUNT(*) AS total 
FROM results 
WHERE datesubmitted BETWEEN @dateMin AND @dateMax 

Количество голосов, поданных за каждый отдельный день:

SELECT COUNT(*) AS total, DATE(datesubmitted) AS day 
FROM results 
GROUP BY DATE(datesubmitted) 
ORDER BY DATE(datesubmitted) DESC 

Обновлено СНОВА

+0

будет группировать каждый голос в виде отдельных результатов в запросе. Я хотел объединить их вместе и отобразить общее количество голосов с одного дня. Но спасибо за отзыв: D –

+0

@JamieHutber Я предположил, что это дата, а не колонка datetime, будет обновляться ... –

+0

cheer fella, первый запрос по-прежнему ничего не возвращает ^^ и, очевидно, более поздние работы :) –

1

Почему вы не просто GROUP BY datesubmitted DESC? Кроме того, нет необходимости в ORDER BY, если он соответствует тем же критериям, что и GROUP BY.

+0

Для столбца «dateubmitted» обратите внимание на комментарии к моему ответу, и вы правы, MySQL также сортирует при группировке, но другие БД не работают (и не должны, он замедляет производительность), поэтому он существует исключительно для полноты. –

+0

, как было заявлено ранее, причина, по которой я хочу, чтобы группа была днем, ваш способ будет группироваться каждую секунду. Очевидно, что это не целые дни. :) –

+0

О, но вы можете группировать DATE (dateubmitted). –

Смежные вопросы