模擬車站日維度客流資料表儲存過程

2021-10-23 11:17:00 字數 2262 閱讀 9122

模擬車站日均客流資料儲存過程:

1、針對換乘站與普通車站,進行不同範圍資料隨機生成

換乘站 : 4 ~ 6w客流量隨機

普通站 : 2 ~ 3w客流量隨機

2、針對工作日與週末進行換乘站與普通車站客流計數增加

換乘站 : 週末 增加 1w客流基數

普通站 : 週末 增加 3000客流基數

create definer=`guijiao`@`%` procedure `product_allstation_passflow`()

begin

-- 設定開始結束時間

declare

startday datetime default date_format('2019-07-30','%y-%m-%d');

declare

endday datetime default date_format('2020-06-10','%y-%m-%d');

-- 定義車站起始id

declare

startstationid int default 80;

declare

endstationid int default 101;

-- 定義週末額外客流量

declare

hweek int default 10000;

declare

pweek int default 3000;

declare

hstation int default 10000;

declare

pstation int default 3000;

-- 日期範圍迴圈

while

to_days(startday) <> to_days(endday)

do-- 判斷是否需要車站id歸零

if startstationid = endstationid

then

-- 車站id歸零

set startstationid = 80;

end if;

-- 判斷當前日期是否是週末,週末則增加額外客流,非週末正常

if dayofweek(startday) = 7 or dayofweek(startday) = 1

then

-- 增加額外量

set hstation = hweek;

set pstation = pweek;

else

-- 額外量清零

set hstation = 0;

set pstation = 0;

end if;

-- 車站id迴圈插入資料

while startstationid <> endstationid

do-- 判斷是否是換乘站 換乘站客流增加

if startstationid = 80 or startstationid = 83 or startstationid = 88 or startstationid = 93

then

-- 換乘站客流量 4w~6w隨機

insert into `test_db`.`passflow_day`(`data_id`, `data_time`, `location_id`, `passflow`) values (date_format(startday,'%y%m%d'),startday, startstationid, floor(39999+rand()*20000) + hstation);

-- 車站id ++

set startstationid = startstationid + 1;

else

-- 普通車站客流量 2w~3w隨機

insert into `test_db`.`passflow_day`(`data_id`, `data_time`, `location_id`, `passflow`) values (date_format(startday,'%y%m%d'),startday, startstationid, floor(19999+rand()*10000) + pstation);

-- 車站id ++

set startstationid = startstationid + 1;

end if;

end while;

-- 設定時間間隔

set startday = date_add(startday, interval 1 day);

end while;

end

多執行緒模擬火車站售票

生活中其實有很多多執行緒的例子,比如火車站售票就是乙個例子。我們先來分析一下,1 首先要有火車票的總數量,並且每賣出一張火車票,總量就減一 2 當火車票的數量小於1的時候,就停止售票 3 使用多執行緒模擬各個視窗進行售票 4 當火車票售完後,火車站也同樣歡迎我們 下來,我們 來實現火車站售票例項 p...

Python多執行緒(模擬火車站售票)

python的標準庫提供了兩個模組 thread和threading,thread是低階模組,threading是高階模組,對thread進行了封裝。我們使用threading這個高階模組,模擬火車站賣票,如果不加鎖,賣出同一張票 import threading from time import ...

Python多執行緒實現模擬火車站售票

python的標準庫提供了兩個模組 thread和threading,thread是低階模組,threading是高階模組,對thread進行了封裝。我們使用threading這個高階模組,模擬火車站賣票,如果不加鎖,賣出同一張票 import threading from time import ...