MySQL-GROUP и COUNT по дате

Я пытаюсь выяснить правильный синтаксис для получения результата запроса, который мне нужен. Вот сценарий:

Я разрабатываю приложение SaaS и имею таблицу, называемую поездками, например:

table.trips  
- trip_id (pk, ai)  
- client_id (fk)  
- shop_id (fk)
- trip_date (date)

Мне нужно иметь возможность получать количество поездок в таблице за каждый день (по shop_id), а затем доставлять количество TRIPS на trip_date, например:

DATE         | TRIP SUM  
--------------------------
01-01-2011   | 3
01-02-2011   | 2  
01-03-2011   | 5

Любые мысли о правильном синтаксисе?

Ответ 1

SELECT COUNT(*), trip_date , shop_id 
FROM trips 
GROUP BY trip_date , shop_id

Ответ 2

Что-то вроде этого?

select 
   DATE(trip_date) as [DATE],
   count(1) as [TRIP SUM]
from
   trips
group by
   DATE(trip_date), shop_id

Я не парень mySQL, но вам нужно использовать эквивалент DatePart T-SQL, где я использовал функцию DATE(), чтобы удалить временную часть даты.

Ответ 3

SELECT shop_id, trip_date, count(trip_id)
FROM trips
GROUP BY shop_id, trip_date

Ответ 4

select trip_date,count(*)
from trips
where shop_id=[the shop id]
group by trip_date

Это будет работать до тех пор, пока дата указана в формате, который вы указали. Если у него есть время, вам нужно удалить время.

Также я не знаю, должен ли client_id войти в этот запрос, если вам нужно группировать его, тогда вы должны поместить его вдоль side trip_date на select или group. Если вы хотите отфильтровать по нему, поместите его туда, где.