当前位置: 首页 > news >正文

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;
http://www.lryc.cn/news/218772.html

相关文章:

  • [python 刷题] 1248 Count Number of Nice Subarrays
  • 堆叠注入 [GYCTF2020]Blacklist1
  • 算法:Java构建二叉树并递归实现二叉树的前序、中序、后序遍历
  • 既然有了字节流,为什么还要有字符流?
  • 3+单细胞+代谢+WGCNA+机器学习
  • 音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
  • (论文阅读15/100)You Only Look Once: Unified, Real-Time Object Detection
  • init进程启动过程
  • 全网最详细的【shell脚本的入门】
  • CH10_简化条件逻辑
  • nn.LayerNorm解释
  • Springboot搭建微服务案例之Eureka注册中心
  • 【MySQL】用户管理权限控制
  • 若依框架前后端分离版服务器部署,前端nginx的配置
  • 基于单片机的滚筒洗衣机智能控制系统设计
  • 简述多模态学习中,对齐、融合和表示
  • Kotlin 进阶函数式编程技巧
  • 操作系统——内存映射文件(王道视频p57)
  • 王道p18 07.将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表。(c语言代码实现)
  • 2024最新mac电脑清理垃圾的软件有哪些?
  • 2023年【山东省安全员C证】考试技巧及山东省安全员C证模拟试题
  • 2024最新免费的mac电脑清理垃圾的软件有哪些?
  • linux下sqlplus登录oracle显示问号处理办法
  • Git 删除本地和远程分支
  • Selenium元素定位之页面检测技巧
  • C# 文件 文件夹 解除占用
  • 数据库 存储引擎
  • 操作系统复习(2)进程管理
  • 通过51单片机控制28byj48步进电机按角度正反转旋转
  • 二十三种设计模式全面解析-装饰器模式的高级应用:打造灵活可扩展的通知系统