MySQL AVG()异常NULL值_avg null-程序员宅基地

技术标签: mysql  

mysql 在计算avg() 时 会自动将null值过滤掉不参与计算,

因为NULL与数字不同0

从概念上讲,它NULL意味着“缺失的未知值”,并且与其他值的处理方式略有不同。这就是像ignore s 这样的聚合函数AVG()NULL

AVG()仅计算所有已知值的平均值。(= 不是 NULL =未知)

来自MySQL文档

除非另有说明,否则组函数会忽略NULL值。

另外,请阅读 MySQL手册“3.3.4.6使用NULL值”一节中NULLs 概念。

为了得到你想要的东西,你可能会这样做

SELECT AVG(IFNULL(marks, 0)) FROM sample GROUP BY(name);

IFNULL()如果值为NULL或通过该值,则返回计算的第二个参数。


关于概念存在更多常见的误解NULL。这些也在本手册的“5.5.3 NULL的问题”一节中进行了解释:

  • 在SQL中,与任何其他值相比,“NULL”值永远不会为真,即使是“NULL”。包含“NULL”的表达式总是产生一个“NULL”值,除非在文档中为表达式中涉及的运算符和函数另有说明。

    ie:`NULL == 0`导致NULL而不是`true`。“NULL == NULL”也会导致NULL,而不是true。
  • 要搜索“NULL”的列值,不能使用`expr = NULL`测试。要查找“NULL”值,必须使用`IS NULL`测试。
  • 当使用`DISTINCT`,`GROUP BY`或`ORDER BY`时,所有`NULL`值都被视为相等。
  • 使用`ORDER BY`时,首先显示`NULL`值,如果指定`DESC`按降序排序则返回最后一个值。
  • 对于某些数据类型,MySQL特别处理NULL值。如果在`TIMESTAMP`列中插入`NULL`,则插入当前日期和时间。
  • 如果将“NULL”插入到具有“AUTO_INCREMENT”属性的整数或浮点列中,则插入序列中的下一个数字。
  • 定义了“UNIQUE”键的列仍然可以包含多个“NULL”值。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42056745/article/details/102921526

智能推荐

可逆图像缩放 ECCV 2020 :Invertible Image Rescaling_m. xiao et al., “invertible image rescaling,” in p-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏16次。Invertible Image Rescalinghttps://arxiv.org/pdf/2005.05650.pdfAbstractHigh-resolution digital images are usually downscaled to fit various display screens or save the cost of storage and bandwidth, meanwhile the post-upscaling is adpoted ..._m. xiao et al., “invertible image rescaling,” in proc. eur. conf. comput.

将大型项目从Ant迁移到Maven-程序员宅基地

文章浏览阅读663次。事实是,我们处在艰难时期。 我们花了将近三个月的时间将构建机制从Ant迁移到Maven 。 如果您打算在大型项目中做同样的事情,那就是您必须安排的最短时间。 我们仍在努力解决这种迁移带来的一些附带影响,但幸运的是,它们并不是那么关键。 上下文 仅需要一点上下文,我们就有一个完整的Java EE 6系统,该系统由25个集成应用程序组成,每个应用程序平均具有3个模块(EJB,WEB等),大约..._ant项目转换成maven

手把手教你手工焊接贴片元件(图文教程)_贴片元件焊接-程序员宅基地

文章浏览阅读2.8w次,点赞38次,收藏135次。一、贴片电容1、首先来张全部焊接一个点的PCB图:2、当然这是焊接贴片的必须工具:3、这个是准备焊接的DD(晕倒,稍不小心会不见):4、夹一个的姿势:6、先用烙铁加热焊点:7、然后夹个贴片马上过去:8、等贴片固定后焊接另外一边:二、M2906焊接:1、晕倒,最恐怖的IC到啦!这个DD比8414还小,太密集啦!焊接这个DD有很大的难度..._贴片元件焊接

Warning: Permanently added ‘gitee.com,212.63.72.83‘ (ECDSA) to the list of known hosts.解决办法_cloning into 'alumni-data-big-screen'... warning: -程序员宅基地

文章浏览阅读4k次。hexo部署博客到码云出现问题填写完ssh密匙后,上传出现:Warning: Permanently added ‘gitee.com,212.64.62.183’ (ECDSA) to the list of known hosts.解决办法: 重新配置git用户名邮箱git config --global user.name "你的账号"git config --global user.email "你邮箱地址"..._cloning into 'alumni-data-big-screen'... warning: permanently added 'gitee.c

学会了PowerBI简单的托托拽拽,是时候学习下DAX了_power bi generateseries-程序员宅基地

文章浏览阅读5.7k次,点赞6次,收藏20次。学会了PowerBI简单的托托拽拽,是时候学习下DAX了不学好DAX,PowerBI对你来说就是个娱乐工具。 对于学习PowerBI来说,看起来一切都很简单,但是不会DAX的话你永远不能说自己已经会Power BI了,DAX又是那么博大精深, 一起来学习下DAX,我们来通过一个例子,看看DAX可以干什么。 首先我们打开PowerBI,选择建模,点击新表,输入如下Numbers = SEL..._power bi generateseries

SQL: coalesce()函数---返回第一个非空值_sql取第一个非空值-程序员宅基地

文章浏览阅读2.7k次。①用途:将空值替换成其他值返回第一个非空值②表达式:COALESCE是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。③举例:SELECT COALESCE(NULL,NU..._sql取第一个非空值

随便推点

对抗物联网网络威胁_物联网场景下弱网对抗(1)-程序员宅基地

文章浏览阅读913次,点赞8次,收藏25次。你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

分享一个好看的vs主题_vscode插件nightowl-程序员宅基地

文章浏览阅读1.2k次,点赞72次,收藏62次。使用这个主题注释的颜色会有点浅不好看清,可以再字体和颜色里修改一下注释的颜色,改成绿色挺好看清。更换完主题后就可以享受自己的全新vs了(外貌全新)。主题的名字叫NightOwl,和vscode的主题颜色挺像的。操作方法也十分简单,首先我们先在最上面哪一行找到扩展。安装完毕后在最上方那一栏找到工具选项(就在扩展左边),点击最下面的选项。最近发现了一个很好看的vs主题(个人认为挺好看的),想要分享给大家。然后点击管理扩展,再搜索栏上搜索NightOwl,下载这个插件。然后就可以更换主题了。_vscode插件nightowl

数据中心机房布线系统运维和管理-程序员宅基地

文章浏览阅读2.3k次。随着近年来金融业的高速发展,其对信息存储和处理能力的要求越来越高。金融业的各种服务都依赖于对信息的管理和分析。数据中心作为支持信息化应用的平台,将扮演越来越重要的角色。许..._数据中心机房布线安全管理数据库设置

Android 网络服务类提供的服务接口_android registerscanresultscallback-程序员宅基地

文章浏览阅读2.9k次。1.NetworkManagementService继承了INetworkManagementService.Stub,因此提供对应的 AIDL 定义的服务:在 frameworks/base/core/java/android/os/INetworkManagementService.aidl 中定义interface INetworkManagementService{ /* Register and unregister an observer to receive ev..._android registerscanresultscallback

VScode、argparse库、lauch.json中args参数_launch.json args 参数-程序员宅基地

文章浏览阅读7.2k次,点赞6次,收藏9次。argparse库是用于接受从command-lines传来参数的库,即argparse库接受命令台终端出传入的参数,但在VScode中并不需要从command-lines来配置参数。VScode通过launch.json文件配置args参数,并通过在python文件中引入sys模块调用参数args1=sys.argv[3]launch.json文件:{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问:_launch.json args 参数

探秘 UPnP-DLNA-Demo:家庭智能设备互连新体验-程序员宅基地

文章浏览阅读549次,点赞21次,收藏14次。探秘 UPnP-DLNA-Demo:家庭智能设备互连新体验项目地址:https://gitcode.com/hubing8658/UPnP-DLNA-Demo在当今智能家居时代,让设备之间无缝协作已经成为一种基本需求。UPnP-DLNA-Demo 是一个开源项目,它提供了一种简单易用的方式,让你的设备能够遵循 UPnP(通用即插即用)和 DLNA(数字生活网络联盟)标准进行通信,实现多媒体数..._upnp开源项目

推荐文章

热门文章

相关标签