SQL 中如何统计某一属性为某个值的记录的条数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 中如何统计某一属性为某个值的记录的条数?相关的知识,希望对你有一定的参考价值。

1、创建测试表,

create table test_where(id number, value number);

2、插入测试数据

insert into test_where select round(mod(level,12)), level from dual connect by level < 1000;

commit;

3、查询表中数据,select t.*,rowid from test_where t;

4、编写sql,查询总记录数、以及id等于9的记录数;

select count(*), count(case when id = 9 then 1 end) from test_where t;

参考技术A 那还不简单,稍微变化一下就好咯,假设你需要统计的那个属性列名叫‘sx’
select sx , count(*) from table group by sx

输出结果的第一列就是属性值,第2列就是等于这个属性有多少条记录。
参考技术B select count(*) from 表 where 字段='?'追问

就是我要将这一属性等于的各个值的数量,都对应的显示出来

追答

select 字段a,count(*) from 表 group by 字段a

参考技术C 通下

高级查询

高级查询

  1. 聚合函数

(一)COUNT()函数:用来统计记录的条数

语法格式如下所示:

SELECT COUNT(*) FROM 表名;

例如:(1)查询student表中一共有多少条记录,SQL语句及其执行结果如下所示:

 技术图片

 

 

(二)   SUM()函数:用于求出表中某个字段所有值的总和

  语法格式如下所示:

SELECT SUM(字段名) FROM 表名;

例如:(1)求出student表中grade字段的总和,SQL语句及其执行结果如下所示:

 技术图片

 

 

(三)   AVG()函数:用于求出某个字段所有值的平均值

 语法格式如下所示:

SELECT AVG(字段名) FROM student;

例如:(1)求出student表中grade字段的平均值,SQL语句及其执行结果如下所示:

 技术图片

 

 

(四)MAX()函数:用于求出某个字段的最大值

语法格式如下所示:

SELECT MAX(grade) FROM student;

例如:(1)求出student表中所有学生grade字段的最大值,SQL语句及其执行结果如下所示:

 技术图片

 

 

(五)MIN()函数:用于求出某个字段的最小值

语法格式如下所示:

SELECT MIN(grade) FROM student;

例如:(1)求出student表中grade字段的最小值,SQL语句如下所示:

 技术图片

 

 

2. 对查询结果排序

(一)   使用ORDER BY对查询结果进行排序。

语法格式如下所示:

SELECT 字段名1,字段名2,……

FROM 表名

ORDER BY 字段名1 [ASC | DESC],字段名2 [ASC | DESC]……

例如:(1)查出student表中的所有记录,并按照grade字段进行排序,SQL语句及其执行结果如下所示:

 技术图片

 

 

(2)查询student表中的所有记录,按照gender字段的升序和grade字段的降序进行排列,SQL语句及其执行结果如下所示:

 技术图片

 

 

3. 分组查询

使用GROUP BY按某个字段或者多个字段中的值进行分组,字段中值相同的为一组。

语法格式如下所示:

SELECT 字段名1,字段名2,……

FROM 表名

GROUP BY 字段名1 ,字段名2 ……

(一) 单独使用GROUP BY 分组:单独使用group by关键字,查询的是每个分组中的一条记录。

例如:(1)查询student表中的记录,按照gender字段值进行分组,SQL语句及其执行结果如下所示:

 技术图片

 

 

(二)GROUP BY和聚合函数一起使用:可以统计出某个或者某些字段在一个分组中的最大值、最小值、平均值等等。

例如(1)将student表按照gender字段值进行分组查询,计算出每个分组中各有多少名学生,SQL语句及其执行结果如下所示:

 技术图片

 

 

(二)   GROUP BY和HAVING关键字一起使用: 用于设置条件表达式对查询结果进行过滤。

 例如(1)将student表按照gender字段进行分组查询,查询出grade字段值之和小于300的分组,SQL语句及其执行结果如下所示:

   技术图片

 

 

4.使用LIMIT限制查询结果的数量

LIMIT,可以指定查询结果从哪一条记录开始以及一共查询多少条信息。

语法格式如下所示:

SELECT 字段名1,字段名2,……

FROM 表名

LIMIT [OFFSET,] 记录数

例如(1)查询student表中的前4条记录,SQL语句及其执行结果如下所示:

 技术图片

 

 

5.函数(列表)

 技术图片

 

 

 

 技术图片

 

 

例如(1)查询student表中的id和gender字段值,如果gender字段的值为“男”则返回1,如果不为“男”则返回0, SQL语句及其执行结果如下所示:

 技术图片

 

 

6.为表取别名

为表起别名的格式如下所示:

SELECT * FROM 表名 [AS] 别名;

7.为字段取别名

为字段起别名的格式如下所示:

SELECT 字段名 [AS] 别名[,字段名 [AS] 别名,……] FROM 表名;

 技术图片

 

以上是关于SQL 中如何统计某一属性为某个值的记录的条数?的主要内容,如果未能解决你的问题,请参考以下文章

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

PHP 统计记录条数

用asp统计一个数据表里记录的条数

高级查询

水晶报表怎么统计每页的条数

mysql根据分组和条件查询以后如何统计记录的条数