123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- --停车饱和度
- select week_day,
- sum(occupancy_parking_number) as occupancy_parking_number,-- 占用
- sum(remain_parking_number) as remain_parking_number-- 空闲
- from (SELECT
- park_id,
- WEEKDAY(CREATE_TIME)+1 as week_day,
- max(total_parking_number) total_parking_number,
- min(remain_parking_number) remain_parking_number,
- max(total_parking_number)-min(remain_parking_number) as occupancy_parking_number
- FROM
- luo_parking_berths
- where remain_parking_number>=0
- group by 1,2) a
- group by 1
-
- -- 停车场周转率分析
- select week_day,
- sum(parking_num)*100/sum(total_parking_number) as parking_turnover_rate
- from
- (SELECT
- WEEKDAY(t.in_time)+1 as week_day,
- t.park_id,
- b.total_parking_number,
- count( t.parking_no ) AS parking_num,
- count( t.parking_no )/b.total_parking_number
- FROM
- luo_parking_inrecord t
- inner join luo_parking_berths b on t.park_id = b.park_id and b.CREATE_TIME = (
- SELECT
- max( CREATE_TIME ) max_time
- FROM
- luo_parking_berths
- WHERE
- create_time >= curdate())
- GROUP BY 1,2,3) t1
- GROUP BY 1
- -- 停车场营收分析
- select
- case when WEEKDAY(c.pay_time)+1 is null then 1 else WEEKDAY(c.pay_time)+1 end pay_time,
- case when sum(amount) is null then 0 else round(sum(amount)/100,2) end as amount
- FROM
- luo_park_baseinfo t
- left join
- (select a.park_id,a.pay_time,b.amount
- from luo_parking_chargerecord a
- inner join luo_parking_chargerecord_subject b
- on a.order_no=b.order_no) c
- ON t.park_id = c.park_id
- group by 1
- -- 特殊车辆进场占比 改为 车辆类型进场占比
- select
- car_type,
- count(order_no) as parking_num
- from
- luo_parking_inrecord
- group by 1
- -- 车辆进出场趋势
- select
- b.week_day,
- round(park_in_num*100/(park_in_num+park_out_num),2) as inflow_rate,
- round(park_out_num*100/(park_in_num+park_out_num),2) as outflow_rate
- from
- (select
- WEEKDAY(in_time)+1 as week_day,
- case when count(parking_no) is null then 0 else count(parking_no) end as park_in_num
- from
- luo_park_baseinfo t
- LEFT JOIN luo_parking_inrecord a
- ON t.park_id = a.park_id
- where WEEKDAY(in_time) is not null
- group by 1) b
- left join
- (select
- WEEKDAY(out_time)+1 as week_day,
- case when count(parking_no) is null then 0 else count(parking_no) end as park_out_num
- from
- luo_park_baseinfo t
- LEFT JOIN luo_parking_outrecord a
- ON t.park_id = a.park_id
- where WEEKDAY(out_time) is not null
- group by 1) c
- on b.week_day=c.week_day
- -- 停车场营收对比分析
- -- 双汇广场停车场 和 大润发地下停车场
- select
- park_name,
- pay_time,
- amount
- from
- (select
- t.park_id,
- t.park_name,
- case when WEEKDAY(c.pay_time)+1 is null then 1 else WEEKDAY(c.pay_time)+1 end pay_time,
- case when sum(amount) is null then 0 else round(sum(amount)/100,2) end as amount
- FROM
- luo_park_baseinfo t
- inner join
- (select a.park_id,a.pay_time,b.amount
- from luo_parking_chargerecord a
- inner join luo_parking_chargerecord_subject b
- on a.order_no=b.order_no) c
- ON t.park_id = c.park_id
- group by 1,2,3) t1
- where park_id in ('100106091','100105564')
|