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;
相关推荐
noravinsc2 分钟前
yum install -y mysql-community-server报错 GPG Keys are configured as....
数据库·mysql
Hello.Reader3 分钟前
Flink SQL 查询(Queries)从 sqlQuery 到 executeSql
sql·flink·linq
Han.miracle6 分钟前
数据库圣经--Alter & 视图
数据库·sql·视图
LeeZhao@12 分钟前
【狂飙全模态】狂飙AGI-智能图文理解助手
数据库·人工智能·redis·语言模型·机器人·agi
毕设十刻18 分钟前
基于Vue的旅游网站yzwa8(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
数据库·vue.js·旅游
风123456789~26 分钟前
【Oracle专栏】密码到期但在宽限期->修改密码
数据库·oracle
Pocker_Spades_A33 分钟前
DeepCore:大模型统一网关,Claude 免费体验与跨模型技术洞察
java·服务器·数据库
八饱粥41 分钟前
excel数据导入mysql数据库
数据库·mysql·excel
('-')44 分钟前
《从根上理解MySQL是怎样运行的》第二十四章笔记
数据库·笔记·mysql
CodeAmaz1 小时前
MySQL 事务的实现原理详解
数据库·mysql·事务·隔离性