某小区使用智慧车辆管理系统对小区的停车场进行管理,该系统记录了本小区车辆进出停车场的相关数据。这些停车场数据保存在“/opt/exam/project/smart_parking/data/parking_info.csv”中,parking_info.csv的部分数据如下所示:
字段说明如下:
特别提示:一辆车可能多次进出停车场。
举例说明1:
以上数据含义:车牌号为新GZ0N91的车辆于2018-01-01 00:22:59进入停车场,于2018-01-01 00:26:53离开停车场,车辆缴费3元,车辆已缴费离开,当前停车场空余车位数量为100个。
举例说明2:
以上数据含义:车牌号为蒙GLHU13的车辆于2018-03-31 22:38:55进入停车场,该车辆尚未离开停车场,当前停车场空余车位数量为82个。
二、数据统计模块
本项目在金仓数据库中已创建数据库parkingdb,如下图所示:
数据库parkingdb中已创建表parking_data,该表的字段如下所示:
表parking_data的字段说明如下:
表parking_data的部分数据如下:
本模块要求使用金仓数据库客户端工具ksql登录金仓数据库,编写SQL语句完成如下题目。
连接数据 需要进入/opt/Kingbase/ES/V8/Server/bin 执行:
./ksql -d test -U system
请结合以上信息完成如下3题:
题目1、计算停车场每小时的停车费,找出停车费最高的前3个小时。(5分)
要求:计算停车场每小时的停车费,找出停车费最高的前3个小时,按停车费从大到小的顺序排序,显示的字段包括hour,avg_price,其中,hour表示小时(例如:2018-01-01 11:00:00),avg_price表示停车费。请将作答的SQL语句以及执行结果分别填到考生作答手册里。
示例答案:
SELECT DATE_TRUNC('hour', timein) AS hour, SUM(price) AS avg_price
FROM parking_data
GROUP BY hour
ORDER BY avg_price DESC
LIMIT 3;
运行截图:
题目2、找出2018年1月1日07:00至8:59期间进入停车场的记录。(5分)
要求:找出2018年1月1日07:00至8:59期间进入停车场的记录,按车辆离开停车场时间从大到小的顺序显示记录,显示的字段包括cn、timein、timeout、price、state、rps。请将作答的SQL语句以及执行结果分别填到考生作答手册里。
示例答案:
SELECT *
FROM parking_data
WHERE DATE(timein) = '2018-01-01' AND
EXTRACT(HOUR FROM timein) BETWEEN 7 AND 8
ORDER BY timeout DESC;
运行截图:
题目3、对停车时长超过2小时的记录进行排序,找出停车时长最长的前5条记录,将其保存到长时间停车表long_parking1中。(10分)
要求:创建表long_parking1,表long_parking1的字段包括cn、timein、timeout、price、state、rps。对parking_data表中停车时长超过2小时的记录进行排序,找出停车时长最长的前5条记录,将这5条记录保存到表long_parking1。按timeout从大到小的顺序显示long_parking1的前5条记录。请将作答的SQL语句以及执行结果分别填到考生作答手册里。
示例答案:
CREATE TABLE long_parking1(
cn VARCHAR(20),
timein TIMESTAMP,
timeout TIMESTAMP,
price NUMERIC(5,2),
state INT,
rps INT
);
INSERT INTO long_parking1
SELECT *
FROM parking_data
WHERE ((DATE_PART('day', timeout - timein) * 24 +
DATE_PART('hour', timeout - timein)) * 60 +
DATE_PART('minute', timeout - timein)) > 120
order by ((DATE_PART('day', timeout - timein) * 24 +
DATE_PART('hour', timeout - timein)) * 60 +
DATE_PART('minute', timeout - timein)) desc
LIMIT 5;
select * from long_parking1 order by timeout desc;
运行截图