SQL 统计个数;条件:指定行间,指定字段值等于A的记录数。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 统计个数;条件:指定行间,指定字段值等于A的记录数。相关的知识,希望对你有一定的参考价值。

例表:
==========================================================
ID 字段1 字段2 字段3 字段4 字段5 字段6
1 A B C A E F
2 U B C D E F
3 A B A D E F
4 E B C D E A
5 X B C A E F
6 R B A D E F
==========================================================
要求查询字段ID=2 ~ ID=5 之间,字段1 ~ 字段5,字段1~字段5值=A记录数。
数据库ACCESS。表记录数比较大,求速度最快的SQL语句。

select count(1) from tabname where id between 1 and 5 and (字段1='A' or 字段2='A' or 字段3='A' or 字段4='A' or 字段5='A')

追问

谢谢。。。

参考技术A select * from table_name where id between 2 and 5 and (字段1=‘A’ or 字段2=‘A’ or 字段3=‘A’ or 字段4=‘A’ or 字段5=‘A’);追问

谢谢。。。

mysql一条sql统计某个字段不同值的个数

比如table种有status,name两个字段,我现在需要统计到所有status=2的个数和status = 2的个数但是按name分组统计,请问有我们办法用一条sql查出来么
问题描述错了,是所有status=2的个数和status != 2的

以时间为跨度统计不同的值,在该时间出现的次数。

语言如下:

select count(*),'列名' from tablename group by '列名'


select count(*),a_yqm from user group by a_yqm

举例:

这里,我要查询出1年内每个月份periods字段不同值的次数。
比如下图中可见的2015-4月,periods为2出现了3次,3出现了1次,最关键的是 periods你不知道有多少种可能的值,也许这个月有1,也许没有。

参考技术A 可以加一个参数就可以
select name,count(*) from table where status=2 group by status,name with rollup;
如果mysql中这么写不行,那么就用嵌套的写法
select * from (select status,name,count(*) from table group by status,name with rollup)
where ststus=2;追问

这样不行,还有这样里面会统计出status != 2 的数据么

追答

你说的是=2和不等于2的个数,哎,大哥我写答案的时候你还没修改问题描述吧,不好用这种质问的口气吧,这样不好。写法不难,自己加油吧。

参考技术B select name,count(1)
from table
where status=2
group by name追问

问题描述错了,是所有status=2的个数和status != 2的个数

追答

select name,
sum(case when status=2 then 1 else 0 end ),
sum(case when status2 then 1 else 0 end )
from table
group by name

参考技术C

SELECT 

COUNT(*) AS 总数,

SUM(CASE WHEN create_time < '2018-01-01 00:00:00' THEN 1 ELSE 0 END) AS 年前数据总量,

SUM(CASE WHEN create_time > '2018-01-01 00:00:00' THEN 1 ELSE 0 END) AS 年后数据总量,

FROM

T_YEAR

(create_time > '2018-01-01 00:00:00') 是查询的条件 用法同 WHERE一致


以上是关于SQL 统计个数;条件:指定行间,指定字段值等于A的记录数。的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句:统计指定字段,等于不同值的条数

SQL查询:要求明细记录里边总额要大于等于并最接近指定的数值

SQL server数据库统计指定字段符合数组中指定个数的SQL语句写法

SQL 怎么用指定条件查询RANK函数生成的新排名列?

在SQL中统计一个字段 然后再更新到另一张表的一个字段

mysql一条sql统计某个字段不同值的个数