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;
相关推荐
八月瓜科技4 分钟前
豆包启动付费会员测试,承诺基础服务永久免费,免费AI时代是否终结?
数据库·人工智能·科技·深度学习·机器人
人道领域5 分钟前
【黑马点评日记】社交平台用户关注功能全解析Feed流相关操作
java·开发语言·数据库·redis·python
zhoutongsheng18 分钟前
mysql如何处理表空间碎片问题_执行OPTIMIZE TABLE整理
jvm·数据库·python
lifewange40 分钟前
如何查看本地的数据库里信息
数据库
PSLoverS1 小时前
Python如何实现测试场景编排_基于pytest的数据驱动组合策略
jvm·数据库·python
HalvmånEver1 小时前
MySQL事务(一)
linux·数据库·学习·mysql
%KT%1 小时前
Agent开发:自动查天气+景区推荐
linux·数据库·php
会编程的土豆1 小时前
MySQL 多表查询
开发语言·数据库·python·mysql
2403_883261091 小时前
PHP调用Codex处理PHP特定语法【操作】
jvm·数据库·python
四方云1 小时前
MySQL 迁移到 Apache Doris 生产实践:从评估到落地的完整指南
数据库·mysql·apache