2015-03-18 4 views
-1

я получил таблицу под названием event_details резюмировать, как показано ниже:MYSQL: подсчет строк с той же датой

Id creation_date 
1 2015-03-18 18:59 
2 2015-03-18 17:59 
3 2015-03-18 16:59 
4 2015-03-17 14:59 
5 2015-03-17 18:59 
6 2015-03-17 19:59 
7 2015-03-16 11:59 
8 2015-03-15 03:59 
9 2015-03-15 02:59 
10 2015-03-15 08:59 
11 2015-03-14 09:59 

Я хочу подсчета строк с той же датой и получить результат, как показано ниже?

Как это сделать? Можно ли использовать вложенные запросы, или я должен использовать объединения?

cnt creation_date 
    3 2015-03-18 
    3 2015-03-17 
    1 2015-03-16 
    3 2015-03-15 
    1 2015-03-14 

И последний вопрос: Это, естественно, тяжелая задача SQL и накладывает большие нагрузки на сервер базы данных или нет?

+0

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html – Ejaz

ответ

2

Вы можете попробовать это.

SELECT COUNT(*), creation_date FROM table_name GROUP BY creation_date 

Это первая группа всех ваших строк с одним и тем же именем create_date, а затем подсчитывает количество строк в каждой группе. Вы, кроме того, можно заказать строки следующим образом:

SELECT COUNT(*), creation_date FROM table_name GROUP BY creation_date ORDER BY creation_date 
+0

Я не знаю, почему я смущен и не мог себе представить это! – VSB

3

Это может быть сделано с group by и count

select 
count(*) as cnt, 
date(creation_date) as creation_date_date 
from event_details 
group by creation_date_date 
+0

Как я могу удалить часть времени? поскольку записи - это дата/время. – VSB

+0

'date (creation_date) as create_date_date' делает это за вас. –

1

Это делает.

SELECT COUNT(*) as cnt, 
     date(creation_date) as creation_date 
FROM event_details 
GROUP BY 2 
Смежные вопросы