1.應用場景:查詢近三年的投產數量,如何得到當前月的總數為前幾個月數的加和?
思路:使用自連線,date_add()函式,date_parse()函式。
select
a.online_year,
a.online_month,
sum( b.success) as success
from
(select
substring (dedate, 1, 4) as online_year,
substring (dedate, 1, 7) as online_month,
count (if (status = '上線成功',true,null)) as success
from
model_test
where
date_parse (substring (dedate, 1, 4), '%y') > date_add ('year' ,-3, now())
group by
substring (dedate, 1, 4),
substring (dedate, 1, 7)
)as a
left join
(select
substring (dedate, 1, 4) as online_year,
substring (dedate, 1, 7) as online_month,
count (if (status = '上線成功',true,null)) as success
from
model_test
where
date_parse (substring (dedate, 1, 4), '%y') > date_add ('year' ,-3, now())
group by
substring (dedate, 1, 4),
substring (dedate, 1, 7)
)as b
on a.online_year= b.online_year and a.online_month >= b.online_month
group by
a.online_year,
a.online_month
order by
a.online_month
2、應用場景:如何查詢當前年或月的資料?
思路:當前時間和資料中的時間處理後做判斷。
select * from model_test where online_month = date_format(now(),'%y-%m')
select * from model_test where online_year = date_format(now(),'%y')
3、應用場景:如何查詢一周內的資料?
思路:使用date_diff()函式。
select
* from
model_test
where
date_diff ('day', create_time, date_parse(date_format(now(),'%y-%m-%d'),'%y-%m-%d')) <= 7
4、應用場景:近乙個月測試用例執行數占總的用例數及比率問題?
思路:近乙個月使用date_add()函式,比率,求百分比。
select
sum (i.test_num) as test_count,
100 * cast (j.test_num_zx as double) / sum (i.test_num) as exec_rate
from
model_test i,
where
i.create_time > date_add('day',-30,now())
group by
j.exec_num
生產級Nodejs開發實踐 使用連線池
做後端開發免不了要和一些儲存伺服器,訊息伺服器等等 打交道。大家都知道和這些使用 tcp連線 的服務傳遞資料的都必須要開啟 乙個連線 connection 例如我們開啟乙個資料庫並執行一段 sql,通常都是 connection open mysql 開啟資料庫,並取得持有連線的控制代碼 data ...
Linux生產標準優化實踐(二)
1.最小化原則 1 安裝系統最小化 2 開啟程式服務最小化原則 3 操作最小化原則 4 登陸最小化原則,平時用普通使用者登陸 5 許可權最小化 6 配置引數合理,不要最大化 2.更改ssh服務遠端登陸的配置 windows 預設管理員使用者名稱 adminstrator 埠 3389 linux 遠...
生產環境常用的sql
replace string,from str,to str 即 將string中所有出現的from str替換為to str。三個引數可以是字元或二進位制資料型別 from str不能為空字串 不支援 text,ntext型別欄位的替換 如果其中的乙個輸入引數資料型別為 nvarchar,則返回 ...