繁体   English   中英

如何获得每周显示的计数

[英]how to get the count showing up iper week

该表显示了车牌号,显示了时间,摄像头的位置。 我需要查找每周出现一次以上的汽车,我需要知道他们是谁,每周出现的频率,以及满足条件的汽车总数。

我尝试手动分割时间段,但是效率太低。 我尝试了以下查询:

   SELECT *, 
       Variance(Time_to_sec(time)), 
       Count(*) 
   FROM   trafficdata.anpr_in 
   WHERE  location = 'a35.1.ob.1' 
       AND Date(time) BETWEEN '2012-05-09'AND '2012-05-15' 
       AND Time(time) BETWEEN '07:00:00' AND '07:05:00' 
   GROUP  BY plate 
   HAVING ( Count(plate) > 3 ); 

输入表如下所示:

  plate         location     number                    time
T971JUR     A3024.7.IB.1         96     2012-05-13 18:06:17
HN52YWE     A3024.13.OB.1        94     2012-05-13 18:09:53

如果你的桌子是

create table tickets (car_number varchar(10),date_of_offense date, 
camera_number varchar(10));

然后

select car_number from tickets group by week(date_of_offense ) having count(*)>1

会给您带来一周内两次或两次以上冒犯的汽车

当您说“我需要查找每周出现不止一次的汽车”时,您的意思是:一周内出现不止一次的汽车吗? 还是在此期间每周出现多次的汽车?

第一个可以回答为:

SELECT plate, week(time), count(*)
FROM   trafficdata.anpr_in 
WHERE  location = 'a35.1.ob.1' AND
       Date(time) BETWEEN'2012-05-09'AND '2012-05-15' AND
       Time(time) BETWEEN '07:00:00' AND '07:05:00' 
GROUP  BY plate , week(time)
HAVING count(*) > 1;

第二个可以回答为:

select plate
from (SELECT plate, week(time), count(*) as cnt
      FROM   trafficdata.anpr_in 
      WHERE  location = 'a35.1.ob.1' AND
             Date(time) BETWEEN'2012-05-09'AND '2012-05-15' AND
             Time(time) BETWEEN '07:00:00' AND '07:05:00' 
      GROUP  BY plate , week(time)
      HAVING count(*) > 1
     ) t
having min(plate) > 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM