SELECT COUNT( * ) 与SELECT COUNT( 1 ) 区别

在 SQL 中,SELECT COUNT(*)SELECT COUNT(1) 都用于统计符合条件的行数,但它们在具体实现和效率上有一些区别。

  1. SELECT COUNT(*):这是一种常见且通用的写法,它会统计所有符合查询条件的行数,包括所有列,不包括 NULL 值。它会对查询的每一行进行计数,这可能涉及扫描整个表或使用索引。

  2. SELECT COUNT(1):这是一种更为简洁和高效的写法。它会统计符合查询条件的行数,但实际上并不关心查询的具体列。因为我们只关心存在与否,所以使用任意常量(例如 1)代替列名即可。

在实际运行中,SELECT COUNT(1) 往往比 SELECT COUNT(*) 更高效。这是因为数据库引擎在执行查询时,并不需要获取所有列的数据,只需要判断是否存在即可。使用 SELECT COUNT(1) 可以避免读取额外的数据,从而提高查询性能。

SELECT COUNT(*) 写法可以根据某个字段非空查询

例:SELECT COUNT(column_name) FROM TABLE

当然还可以这样写

复制代码
SELECT COUNT(CASE WHEN Column1 IS NOT NULL OR Column2 IS NOT NULL THEN 1 END) AS NonNullCount
FROM YourTable;
相关推荐
2301_818008443 分钟前
CSS如何让响应式图片在容器内居中_利用background-position
jvm·数据库·python
weixin_444012936 分钟前
mysql如何升级版本至最新_mysql大版本平滑升级策略
jvm·数据库·python
kexnjdcncnxjs21 分钟前
mysql如何优化小表的查询索引_mysql全表扫描与索引代价对比
jvm·数据库·python
一只专注api接口开发的技术猿1 小时前
京东商品实时监控选品实战:用 Open Claw API 快速搭建自动化工具
运维·数据库·自动化
万事大吉CC1 小时前
【7】Django 类视图实战指南:如何高效引用与配置
数据库·sqlite
木土雨成小小测试员1 小时前
Python测试开发之后端二完结
数据库·python·sqlite
szccyw01 小时前
如何从SQL提取年或月数据_运用YEAR与MONTH提取函数
jvm·数据库·python
重生之小比特1 小时前
【MySQL 数据库】基本查询
android·数据库·mysql
罗超驿1 小时前
4.MySQL数据表操作与CRUD详解:从建表、插入到查询的全流程
数据库·mysql
2601_954971131 小时前
没有SQL基础能学数据分析吗?先学什么更合适
数据库·sql·数据分析