使用SQL语句统计数据时sum和count函数中使用if判断条件的讲解

 更新时间:2019年02月26日 16:33:58   作者:彩色小王  
今天小编就为大家分享一篇关于使用SQL语句统计数据时sum和count函数中使用if判断条件的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

首先举个栗子(不想看的话直接下面看总结):

order_type:订单类型
open_id:用户唯一标识
SELECT
    date(create_time) AS '当天日期',
    sum(real_price) AS '当天总收入',
sum函数中使用if判断条件:{
sum(
IF (order_type = 0, real_price, 0)
) AS '当天支付收入',
sum(
IF (order_type = 1, real_price, 0)
) AS '当天打赏收入',
}
    count(DISTINCT open_id) AS '付费总人数',
count函数中使用if判断条件:{
count(
DISTINCT open_id,
IF (order_type = 0, TRUE, NULL)
) AS '支付人数',
count(
DISTINCT open_id,
IF (order_type = 1, TRUE, NULL)
) AS '打赏人数',
}
    count(id) AS '付费订单总数',
count函数中使用if判断条件:{
count(
DISTINCT id,
IF (order_type = 0, TRUE, NULL)
) AS '支付订单数',
count(
DISTINCT id,
IF (order_type = 1, TRUE, NULL)
) AS '打赏订单数'
}
FROM
orders
WHERE
'real_price' != 1
AND 'status' != 0
GROUP BY DATE(create_time)

查询结果:为了区分打赏订单和支付订单的数据统计,使数据更加清晰。

小结:

sum函数中使用if判断条件格式为:sum(if(条件,列值,0))

注解:sum是求和函数,条件为真时,执行列值(字段名)求和也就是累加,条件为假时为0求和(当然还是0)

1.单条件判断格式,sum(if(条件字段名=值,需要计算sum的字段名,0))

2.多条件判断格式,sum(if(条件字段名>值 AND 条件字段名>值 AND 条件字段名=值,1,0))

注解:多条件判断格式整体含义为,计算满足条件的数据总数,如果满足条件,那么数据总数加1,所以1的含义为累加1

3.常见case when格式,sum(case when 条件字段名 in (范围较小值,范围较大值) then [需要计算sum的字段名] else 0 end)

count函数中使用if判断条件格式为:

1.统计总数,count(if(条件字段名=值,true,null))

2.统计总数去重复值,count(DISTINCT 需要计算count的字段名,if(条件字段名=值,true,null))

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • SQL联合查询inner join、outer join和cross join的区别详解

    SQL联合查询inner join、outer join和cross join的区别详解

    今天小编就为大家分享一篇关于SQL联合查询inner join、outer join和cross join的区别详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 一文带你了解MySQL之InnoDB统计数据是如何收集的

    一文带你了解MySQL之InnoDB统计数据是如何收集的

    通过show index可以看到关于索引的统计数据,那么这些统计数据是怎么来的呢,它们是以什么方式收集的呢,本章将聚焦于InnoDB存储引擎的统计数据收集策略,需要的朋友可以参考下
    2023-05-05
  • MySQL索引优化Explain详解

    MySQL索引优化Explain详解

    这篇文章主要介绍了MySQL索引优化Explain详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • MySQL数据库索引order by排序精讲

    MySQL数据库索引order by排序精讲

    我们今天说的并不是大数据下该如何优雅的排序,如何提升排序性能的问题,我们来仔细分析说一说MySQL中的排序问题,希望可以对正在阅读的同学们有所启迪帮助
    2021-11-11
  • MySQL数据库表约束超详细讲解

    MySQL数据库表约束超详细讲解

    这篇文章主要给大家介绍了关于MySQL数据库表约束的相关资料,MySQL 约束是用于保持数据完整性和一致性的规则,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • MySQL-8.0.26配置图文教程

    MySQL-8.0.26配置图文教程

    最近公司项目更换数据库版本,在此记录分享一下自己安装配置MySQL8.0版本的过程吧,本文通过图文并茂的形式给大家介绍的非常详细,对MySQL-8.0.26配置教程感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • 基于JPQL实现纯SQL语句方法详解

    基于JPQL实现纯SQL语句方法详解

    这篇文章主要介绍了基于JPQL实现纯SQL语句方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 基于C++实现Mysql数据库连接池实例

    基于C++实现Mysql数据库连接池实例

    数据库连接池负责分配、管理、和释放数据库连接,允许使用应用程序重复使用一个现有的数据库连接。数据库连接是关键有限且昂贵的资源,一个数据库连接对象均对应一个物理数据库的连接,每次操作都打开一个物理连接,使用完都关闭连接
    2022-12-12
  • mysql数据库修改添加Date格式列的方法

    mysql数据库修改添加Date格式列的方法

    这篇文章主要介绍了关于mysql数据库如何修改添加Date格式的列 ,需要的朋友可以参考下
    2014-07-07
  • mysql事务的基本要素与事务隔离级别详解

    mysql事务的基本要素与事务隔离级别详解

    这篇文章主要介绍了mysql事务的基本要素与事务隔离级别详解,事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,需要的朋友可以参考下
    2023-08-08

最新评论