MySql关于数据统计常用的SQL

大家在工作汇总可能需要很多sql,增删改查,有可能没有接触到很难的sql,我们通常要对数据进行统计,比如获取本周,本月,本年的数据,这时候需要查询本月一号,到月末,本年一号,到12月31,随着年份的增长我们不可能给一个固定值,这就需要我们在MySql中使用时间。

1. 获取本周周一

2. 获取本月月初

3. 获取本年的年初

注意:curdate 默认的是目前日期的开始,如果当前日期为 ‘2018-08-17’ 匹配时为‘2018-08-17 00:00:00’,所以不用担心的数据库的时间类型为时间戳,这也是没有问题的

接下来再说一些比较常用的SQL

4. 这是典型的choose when语句

5. case when

如果没有数据,则设置为0

6. 接下来写一个行转列的案例,

这里有一个场景是, 一张表里面有多条数据,其中有两个字段 一个是paymeny_type和totalAmout,一个是支付的方式,一个是支付的金额,我们来假设有5条数据

业务是,我要查询每一个payment_type对应的totalAmount 返回,还有就是把所有的钱统计.当时想到的是使用group by根据payment_type来分组,这样的话,可以知道每一个payment_type 和累计加起来的totalAmount,但是这样的话就没有根据所有的totalAmount累计加。当然也可以去外面累计加,但是sql既然能完成就用sql吧。

思路:我先去判断每一条数据的payment_type,如果等于1,那么对应的现金就有值,则其余的‘aliPayReceipts’等就全部为0。如下面看到的这样。接下的操作就和大家想的一样了,每一个sum就可以了。

如果能在数据库完成的事情就不要用去写代码去完成,减少开发的成本。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180817G1055K00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券