需求:
彙總乙個使用者不同支付方式的購買的總杯數
buy_num 杯數
pay_code 支付方式
pay_name 支付名稱
pay_status 支付狀態
ms_order 訂單表
ms_user 使用者表
select u.id,pay_name,u.username,
sum(buy_num) as buy_num,
count(if(pay_code = "wxpay", true, null)) as wxpay_count,
count(if(pay_code = "alipay", true, null)) as alipay_count,
sum(if(pay_code = "wxpay", buy_num, 0)) as wxpay,
sum(if(pay_code = "alipay", buy_num, 0)) as alipay
from `ms_user` `u` inner join `ms_order` `od` on `od`.`user_id`=`u`.`id` where `pay_status` = 1
group by `user_id`
通過sum(if(pay_code = "xx", ***, 0))
根據不同字段增加彙總
通過count(if(pay_code = "xx", true, null))
根據不同字段彙總
mysql欄位彙總
型別 描述int 一種數值型別,值的範圍如下 帶符號的 2147483648 2147483647 不帶符號的0 4294967295 最多十位,所以存手機號是不行的 decimal 一種數值型別,支援浮點數或者小數 double 一種數值型別,支援雙精度浮點數 date yyyymmdd格式的日期...
oracle根據不同條件給字段賦不同的值
話不多說,先貼 declare cursor my cur is select t.empno,t.deptno,t.sal from scott.emp t where t.empno 7698 for update of sal 鎖定sal這一列,不允許其他session更新sal列的資料 nu...
根據表字段值left join 不同的表
首先說下思路吧,搗鼓了好半天,網上找到解決辦法,大概兩種方法 1.在left join 的後面將兩張表union all連線為一張表,並加上 區分表關鍵字 然後根據 區分表關鍵字 篩選我們需要的資料 2.使用兩個left join,每個left join 跟上一張表,並加上 區分表關鍵字 然後在 o...