create table `asgard_share_records` (
`id` bigint(20) not null comment '分享記錄id',
`status` tinyint(3) unsigned not null default '1' comment '資料狀態 1: 正常 0: 刪除',
`create_time` datetime default null comment '建立時間',
`user_id` bigint(20) default null comment '分享的使用者id',
`link_url` varchar(255) default null comment '分享的鏈結位址',
`shared_day` varchar(10) not null default '' comment '分享當天',
`shared_hour` varchar(2) not null comment '分享時刻',
primary key (`id`),
key `idx_shared_day` (`shared_day`) using btree
) engine=innodb default charset=utf8 comment='分享記錄';
表結構如上。分享記錄表
select sum(if(shared_day =#,1,0)) sharedpeopletodaycount,
sum(if(shared_day =#,1,0)) sharedpeopleyesterdaycount,
sum(if(shared_day =#,1,0))/sum(if(shared_day =#,1,0)) sharedpeopleincreasepercent
from (
select
user_id,shared_day
from asgard_share_records
where user_id >0
and shared_day in (#,#)
group by user_id,shared_day
) a
1、統計昨日和今日分享人數
2、採用sum if 行轉列,方便收集資料。
但有乙個問題。如果today 或者yesterday沒有資料,則統計返回資料是null。使用sum統計如果沒有資料可能是null !!!
select ifnull(sum(if(shared_day =#,1,0)),0) sharedpeopletodaycount,
ifnull(sum(if(shared_day =#,1,0)),0) sharedpeopleyesterdaycount,
ifnull(sum(if(shared_day =#,1,0))/sum(if(shared_day =#,1,0)),0) sharedpeopleincreasepercent
from (
select
user_id,shared_day
from asgard_share_records
where user_id >0
and shared_day in (#,#)
group by user_id,shared_day
) a
加上ifnull,如果是null則返回0 優化sql,解決問題。 記一次前端bug排查
前言 時隔三年,終於記得要找回賬號密碼開始寫筆記了,這周剛加入了乙個後台管理系統專案,測試反饋系統重新整理時經常會直接登出,嚴詞要求解決這個 重大 bug,so尷尬。更嚴重的是發現系統在ie上直接登不進去,嬸可忍叔不可忍,於是我開啟了苦逼的尋bug之路。既然是登出了,當然會有登出請求,chrome重...
記一次調bug記錄 15 4 17
bug描述是這樣的,為了描述的方便,我先定義幾個變數 a 客戶端a b 客戶端b a send 傳送的a a recv 接收到的a 這裡的a可能和傳送的不一樣 有2個客戶端a和b,他們自己應該是可以傳送和接收的.但是接收端接收到了,但是無法開啟.a傳送a send給b,b收到了a recv,但是無法...
記一次npm的奇怪bug
近幾天npm不知怎麼了不能安裝包了,連cnpm都不能安裝了,於是開始開 ku 心 bi 的除錯。網上的方法基本上全都試過了,結果出現了這個東西 這是讓我刮獎嗎?google一下,還真有這樣的錯誤,好像是埠被占用了。好嗎,三下五除二改下埠,發現還是不行。仔細觀察發現網上貼出來的錯誤跟我的錯誤還不一樣,...