記一次sum SQL 統計BUG

2021-10-06 12:10:53 字數 1708 閱讀 4485

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一下,還真有這樣的錯誤,好像是埠被占用了。好嗎,三下五除二改下埠,發現還是不行。仔細觀察發現網上貼出來的錯誤跟我的錯誤還不一樣,...