group by,having,sum的使用例子

需求:

    撈取3月份儲值總金額大於等於5000點的資料 。

 

兩張表,部分結構如下:

儲值表pays
idmidpointpay_time
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx

會員表members
iduser_name
xxxxxxxx
xxxxxxx


1.使用group by 先分組查看3月份每個會員的儲值記錄。

select m.user_name as 帳號,p.point as 點數 from pays as p left join members as m on m.id = p.mid where pay_time between '2014-03-01 00:00:00' and '2014-03-31 23:59:59' group by p.mid

group by 是針對某個列欄位進行分組,格式如下:

SELECT "栏位1", SUM("栏位2")
FROM "表格名"
GROUP BY "栏位1"


2.使用sum統計每個會員儲值的總數

select m.user_name as 帳號,sum(p.point) as 總金額 from pays as p left join members as m on m.id = p.mid where pay_time between '2014-03-01 00:00:00' and '2014-03-31 23:59:59' group by p.mid

sum是針對上面分組的每個相同會員的point進行相加。



3.使用having統計儲值金額大於5000點記錄,並針對總金額進行降序排序

select m.user_name as 帳號,sum(p.point) as 總金額 from pays as p left join members as m on m.id = p.mid where pay_time between '2014-03-01 00:00:00' and '2014-03-31 23:59:59' group by p.mid having sum(p.point) >= 5000 order by sum(p.point) desc

where與 having都是指定對某些條件的篩選,having是對分組後的結果進行篩選,數據庫是先處理完where的條件,再處理having。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值