Группировать по 2 столбцам и подсчитывать

#mysql

#mysql

Вопрос:

У меня есть следующая таблица MySQL — user_actions: id — int user_id — int timestamp — datetime action — int

пример данных:

 1|5|01.01.2011 21:00:00|1
2|5|01.01.2011 21:00:00|3
3|6|01.01.2011 21:00:00|5
3|6|01.02.2011 21:00:00|5
  

Я хочу подсчитать количество пользователей, которые совершали действие за каждый день (независимо от того, сколько действий), в приведенном выше примере результат должен быть:

 01.01.2011|2 
01.02.2011|1 
  
  • это означает, что 2 пользователя совершили действия в 01.01.2011 и один пользователь в 01.02.2011

есть мысли?

Ответ №1:

 SELECT count(DISTINCT user_id)
     , DATE_FORMAT(timestamp, '%Y-%m-%d') 
  from table 
 group by DATE_FORMAT(timestamp, '%Y-%m-%d')
  

Комментарии:

1. нехорошо… Я получаю 2 строки для первой даты (01.01.2011) вместо одной

2. Я обновил запрос. Я неправильно понял ваш вопрос. Я надеюсь, что теперь это правильно.