以當前時間爲節點,查詢前24小時之內的實時車流量進出數據。
SELECT
a. HOUR HOUR,
ifnull(b.count, 0)enterVehicleNum,
ifnull(c.count, 0)leaveVehicleNum
FROM
( SELECT DATE_FORMAT( DATE_ADD( date_sub(NOW(), INTERVAL 1 DAY), INTERVAL xc - 1 HOUR ), '%Y-%m-%d %H' )AS HOUR
FROM
( SELECT @xi :=@xi + 1 AS xc FROM
( SELECT 1 UNION SELECT 2 UNION SELECT 3 )xc1,
( SELECT 1 UNION SELECT 2 UNION SELECT 3 )xc2,
( SELECT 1 UNION SELECT 2 UNION SELECT 3 )xc3,
(SELECT @xi := 0)xc0
)xcxc
)a
LEFT JOIN(
SELECT
date_format(in_time, '%Y-%m-%d %H')HOUR,
count(in_time)count
FROM
t_ic_vehicle_record
WHERE
delete_flag = '0'
AND date_format(in_time, '%Y-%m-%d %H')>= date_sub(NOW(), INTERVAL 1 DAY)
GROUP BY
date_format(in_time, '%Y-%m-%d %H'),
HOUR
)b ON a. HOUR = b. HOUR
LEFT JOIN(
SELECT
date_format(pass_time, '%Y-%m-%d %H')HOUR,
count(pass_time)count
FROM
t_ic_vehicle_record
WHERE
delete_flag = '0'
AND date_format(pass_time, '%Y-%m-%d %H')>= date_sub(NOW(), INTERVAL 1 DAY)
GROUP BY
date_format(pass_time, '%Y-%m-%d %H'),
HOUR
)c ON a. HOUR = c. HOUR
ORDER BY
HOUR
關鍵點就是先把24小時這個表製作出來,其他的在查
打印結果: