MySQL- GROUP和COUNT按日期

时间:2011-03-23 15:08:10

标签: mysql group-by

我试图弄清楚获取我需要的查询结果的正确语法。这是场景:

我正在设计一个SaaS应用程序,并有一个名为trip的表,如下所示:

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

我需要能够获得每天在桌子上的旅行次数(通过shop_id),然后提供每次trip_date的TRIPS数量,例如:

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

关于正确语法的任何想法?

5 个答案:

答案 0 :(得分:22)

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

答案 1 :(得分:3)

这样的东西?

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

我不是mySQL的人,但你需要使用T-SQL DatePart等价物,我使用DATE()函数来剥去日期的时间部分。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

只要日期与您显示的格式一致,这将有效。如果它还有时间则你必须删除时间。

此外,我不知道client_id是否必须在此查询中进入,如果您必须按其分组,那么您必须将它放在select或group旁边的trip_date上。如果你想按它过滤,请把它放在哪里。

答案 4 :(得分:1)

如果日期列还存储小时和分钟,则需要将子字符串函数应用于日期,只需要具有日期列的 yyyy-mm-dd 部分,如下所示: / p>

render json: @latestgins