MYSQL 巧用count,sum進行統計資料

2021-09-22 09:01:51 字數 1352 閱讀 7253

select a.user,count(b.order_id) as subcount,sum(if(b.verifysta='y',1,0)) as passcount from vicidial_users a left join vicidial_order b on a.user = b.user where a.user_group = 'teamone' group by a.user;

sum(if(b.verifysta='y',1,0))  

如果verifysta為y,就加1,否則為0,

這個太棒了。

把邏輯放到sql中,會大大的減少程式的工作量,而且效率很高。

這樣既能獲取到全部的訂單提交,也能獲取審核通過的訂單提交。

根據日期篩選,先篩選出order資料(where條件都在其中),如果where放在外面的話,就會把資料過濾掉了。

拆分開來如下:

select user,order_id,verifysta from vicidial_order where time>unix_timestamp('2015-11-7') and time

根據條件,獲取所有的存在的資料。

獲取全部的資料,不進行count、sum、group by 處理。

巧用PARSENAME函式

有時候會有這樣的需求 假設我們在很多伺服器上建立了若干個例項,我現在需要寫個動態指令碼到每個例項去處理,而這個動態指令碼需要使用到例項名或者伺服器名,比如 我有3臺伺服器,分別為a,b,c,在a上裝了2個命名例項為a1,a2 在b上裝了2個命名例項b1,b2 c上就只裝了個預設例項,環境這樣,假設我...

巧用Linq分組

如下圖,想根據下面的資料按天求和分組 紅框部分 在後台取過來用orm已經轉成了物件陣列,為了避免再去寫麻煩的sql語句 資料量不大,不要求效能 就用了linq,問題是分組的部分不是時間欄位的全部,只是年月日部分,然後對數值部分進行求和 var newlist from t in list order...

巧用移位操作

移位規則 移位時,移出的位數全部丟棄,移出的空位補入的數與左移還是右移有關。如果是左移,則規定補入的數全部是0 如果是右移,還與被移位的資料是否帶符號有關。若是不帶符號數,則補入的數全部為0 若是帶符號數,則補入的數全部等於原數的最左端位上的原數 即原符號位 具體移位規則如下所示。位移位運算子的優先...