Sql根据不同条件统计总数

article/2025/11/7 9:29:48

前言

经常会遇到根据不同的条件统计总数的问题,一般有两种写法:count和sum都可以
数据准备:
在这里插入图片描述

方法一 :Count

代码:

SELECTCOUNT(CASEWHEN age > 20AND age < 25 THEN1ELSENULLEND) AS cnt0,COUNT(CASEWHEN age >= 25AND age < 30 THEN1ELSENULLEND) AS cnt1
FROMUSER;

结果:
在这里插入图片描述

方法二:sum

代码:

SELECTSUM(CASEWHEN age > 20AND age < 25 THEN1ELSE0END) AS cnt0,SUM(CASEWHEN age >= 25AND age < 30 THEN1ELSE0END) AS cnt1
FROMUSER;

结果:
在这里插入图片描述
当然也可以和count代码一样ELSE后面也写为NULL

SELECTSUM(CASEWHEN age > 20AND age < 25 THEN1ELSENULLEND) AS cnt0,SUM(CASEWHEN age >= 25AND age < 30 THEN1ELSENULLEND) AS cnt1
FROMUSER;

后记

其实原理很简单,count统计的时候有满足条件的就加1,没有满足的变为NULL,我们知道聚合函数统计的时候是忽略null值的;而sum原理和coun相似,不过ELSE后面可以是0或者NULL。


http://chatgpt.dhexx.cn/article/MvLoqsMw.shtml

相关文章

SQLServer查询多条件统计总数

业务需求&#xff1a;根据不同条件查询统计出总价钱 select SUM(case when status0 then price else 0 end) A, SUM(case when status5 then price else 0 end) B, SUM(case when status4 then price else 0 end) C, SUM(case when status1 then price else 0 end) D, SUM(ca…

SQL--统计出每日在线总数

需求&#xff1a; 一张表有uid、起始日期和终止日期&#xff0c;能不能一条sql统计出每日在线总数 样例&#xff1a; 比如 三条数据&#xff1a; a 20220510 20220512 b 20220510 20220511 c 20220511 20220512 结果: 20220510 2 20220511 3 20220512 2 数据准备&#xff1a;…

MySQL一条sql语句多个count统计

user表&#xff1a; 多个count统计sql语句 selectcount(case when sex 男 then 1 end) as man,count(case when sex 女 then 1 end) as woman,count(case when age>18 then 1 end) as adult,count(case when age<18 then 1 end) as nonagefrom user 可根据自己的业务更改…

sql 按时间段统计数据个数

插入数据sql样例 insert into using_time (create_time, fid) VALUES ("2022-09-15 14:24:50","17988413a036e3c80dd97d476f9d5b2f627a2cb20d8bcaa0af7f6a94cc8f1a6a");查询sql样例 select count(*) from using_time where create_time between 2022-09-…

SQL语句统计排行前10

SQL语句统计排行前10 引言一、创建表二、插入数据三、执行查询1、统计当天迟到的人员名单2、统计当月迟到次数排行前十的人员名单 引言 场景&#xff1a;公司每天要进行打卡上班&#xff0c;每个人每天也可以多次打卡&#xff0c;所有打卡信息会记录到表A 中&#xff0c;表A中有…

SQL 根据分类进行个数统计

前言&#xff1a;使用数据库存储数据时&#xff0c;常会有根据存储数据的类型对数据的个数进行分类统计&#xff0c;可采用以下两种方法使用sql直接进行统计。 业务场景&#xff1a;消息表中存储各种消息&#xff0c;消息有多种类型&#xff0c;每条消息对应一个类型&#xff…

MySql:一条sql语句多个count统计

user表&#xff1a; 多个count统计sql语句 selectcount(case when sex 男 then 1 end) as man,count(case when sex 女 then 1 end) as woman,count(case when age>18 then 1 end) as adult,count(case when age<18 then 1 end) as nonage from user可根据自己的业务更改…

sql 统计常用的sql

统计常用的sql语句&#xff1a; 今天的所有数据&#xff1a;select * from 表名 where DateDiff(dd,datetime类型字段,getdate())0 昨天的所有数据&#xff1a;select * from 表名 where DateDiff(dd,datetime类型字段,getdate())1 7天内的所有数据&#xff1a;select * from …

sql统计表总数以及表中字段总数

sql统计表总数&#xff1a;select count() from sysobjects where type‘U’ 统计字段总数&#xff1a;select count() from syscolumns where id object_id(‘表名’)

SQL统计占比

假设access_log表有src_ip、user_agent、url三个字段&#xff0c;每一次请求产生一条记录(行)&#xff0c;现在想统计访问量前10的IP、访问量count及访问量占比percent 第一种方式&#xff1a;直接从多个表查询数据 SELECTa.src_ip,a.count,round(a.count * 100 / b.total, 2)…

sql统计count

mysql中count统计不同数据出现次数 简单数据表 如图&#xff1a; 统计有多少个不同手机进行缴费 sql统计是使用count() 进行统计 在不考虑重复的情况下&#xff0c;统计手机数 select count( phone_id) from CM_LOG ; 结果 统计出来是3个&#xff08;提示应该是2个的&…

一条sql实现统计总数、分组分别统计总数

wshanshi&#xff1a;个人使用记录… 一、 方法一 SELECT COALESCE ( sex, 总数 ), COUNT( id ) 人数 FROM test GROUP BY sex WITH ROLLUP;二、方法二 SELECT count( 1 )总数, sum( CASE WHEN sex 1 THEN 1 ELSE 0 END )男, sum( CASE WHEN sex 0 THEN 1 ELSE 0 END ) 女 …

matlab 均值滤波

在matlab中使用滤波器对图像进行滤波非常方便&#xff0c;只需要调用库函数&#xff0c;只是满足工程需要就够了&#xff1b;但是想学习图像处理的滑&#xff0c;是远远不够的&#xff0c;还要对算法的基本原理弄清楚 1-均值滤波 均值滤波也叫做线性滤波&#xff0c;规定一个…

MATLAB3*3均值滤波、5*5均值滤波和圆盘滤波

clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 im imread(‘coloredChips.png’); % 原图像 R imnoise(im(:,:,1),‘gaussian’,0,0.01); % R 白噪声 G imnoise(im(:,:,2),‘gaussian’,0,0.01); % …

matlab中blur函数_matlab-----均值滤波函数的实现

均值滤波的原理是对图像以一个区域(方形,圆形)等为模板,对该区域内的数据求平均后赋值给区域的中心 这种滤波方式原理简单,但是在滤波的同时会造成图像模糊。 本文将尝试对matlab中的filter2()均值函数用自定义函数averfilter()实现。 %x是需要滤波的图像,n是模板大小(即nn)…

MATLAB逆谐波均值滤波

% 逆谐波均值滤波 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 im imread(‘brain.bmp’); % 原图像 im imnoise(im,‘gaussian’,0,1e-3); % 原图像 白噪声 im1 conharmmean_filter(im,3,3,3/2)…

中心滤波与均值滤波MATLAB

1. 均值滤波 (1). 在当前的矩阵元素A(m,n)下&#xff0c;选择一个合适的模板&#xff08;模板范围可以自定&#xff0c;如3*3&#xff0c;5*5&#xff0c;n*n等&#xff09;&#xff0c;取该模板中所有元素的平均值。 (2). 将平均值赋值给所选的矩阵元素A(m,n)&#xff0c;其他…

MATLAB谐波均值滤波

% 谐波均值滤波 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 im imread(‘brain.bmp’); % 原图像 im imnoise(im,‘gaussian’,0,1e-3); % 原图像 白噪声 im1 harmonymean_filter(im,3,3); % 应…

Matlab实现均值滤波与FPGA进行对比,并采用modelsim波形仿真

文章目录 一、实验目标二、实验中遇到的问题1、如何实现均值滤波2、modelsim仿真的时候涉及到IP核不存在怎么办&#xff1f; 三、具体实现3.1 均值滤波的实现3.1.1 调用shift_ram ip核&#xff1a;3.1.2 均值滤波的流水并行处理 3.2 整体模块设计3.2.1 图像生成模块3.2.2 Ycbcr…

图像处理中调用matlab自带均值滤波、高斯滤波和中值滤波函数的案例以及自编均值滤波的案例。

[TOC](利用matlab自带均值滤波器的代码&#xff0c;分别对一幅图像实现3*3&#xff0c;5*5&#xff0c;7*7&#xff0c;9*9的均值滤波&#xff0c;并对实验结果进行分析。) [TOC](分别给干净图像添加高斯和椒盐噪声&#xff0c;然后进行均值滤波、高斯滤波和中值滤波&#xff…