SQL怎么统计个数

Posted

tags:

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

现在有2张表,A和B,
A里面是放的 ID 车主信息,车辆品牌,车牌
B里面是放的 ID 地址 区域
怎么样找出在不同的 区域 使用某一种型号车辆的 个数

比如说
在区域1,区域2,区域3 里面使用 别克车 的人分别有多少,怎么样列出来

方法一:

SELECT SUM(正确数)+SUM(错误数) AS 总记录数,SUM(正确数),SUM(错误数) 
FROM ( 
SELECT COUNT(1) 正确数,0 错误数 
FROM TB 
WHERE STATUS=1 
UNION ALL 
SELECT 0 正确数,COUNT(1) 错误数 
FROM TB 
WHERE STATUS=0) a

方法二:

select count(1)总记录数,sum(case when status=1 then 1 else 0 end)正确数,sum(case when status=0 then 1 else 0 end) 错误数 from T

1、统计平均数:

SELECT AVG(column) FROM tb_name 该 SQL 语法用于统计某一数值类型字段的平均数,AVG() 内不能是多个字段,字符串等类型虽然可以执行,但无意义。

2、统计数据之和:

SELECT SUM(column) FROM tb_name 该 SQL 语法用于统计某一数值类型字段的数值之和,SUM() 内不能是多个字段,字符串等类型虽然可以执行,但无意义。

3、统计最大数据:

SELECT MAX(column) FROM tb_name 该 SQL 语法用于统计某一数值类型字段的数值最大值,MAX() 内不能是多个字段。

4、统计最小数据:

SELECT MIN(column) FROM tb_name  SQL 语法用于统计某一数值类型字段的数值最小值,MIN() 内不能是多个字段。

参考技术A SELECT B.区域, A.车辆品牌, COUNT(A.车牌)
FROM B LEFT JOIN A
ON A.ID = B.ID
GROUP BY B.区域, A.车辆品牌

如果要某个品牌的,只需要加以个WHERE过滤下
SELECT B.区域, A.车辆品牌, COUNT(A.车牌)
FROM B LEFT JOIN A
ON A.ID = B.ID
WHERE A.车辆品牌 = '别克车'
GROUP BY B.区域, A.车辆品牌追问

要是查询出来的区域出现这样的情况 ,怎么样去叠加
湖北 10
湖北省 15
湖南 20
湖南省 30

追答

什么数据库?
可以把那个省替换为空白,然后GROUP BY

SELECT repalce(区域, '省', ''), SUM(数量)
from tab
group by repalce(区域, '省', '')

参考技术B select 区域,count(*) 数量 from A,B where A.ID=B.ID and A.车辆品牌='别克车'
group by 区域追问

要是查询出来的区域出现这样的情况 ,怎么样去叠加
湖北 10
湖北省 15
湖南 20
湖南省 30

追答

select REPLACE(区域,'省','') 区域,count(*) 数量 from A,B where A.ID=B.ID and A.车辆品牌='别克车'
group by REPLACE(区域,'省','')

本回答被提问者采纳
参考技术C M sysobjects
WHERE (xtype = 'U')

sysobjects是sql server 的系统表,用于记录数据库中的各种对象。
你可以在企业管理器下,右击数据库服务器在弹出的菜单中选“编辑sql server注册属性”,然后在“显示系统数据库和系统对象”前打上对勾。
然后你在打开你在查询的那个数据库,就会看到隐藏的系统表,其中就有一个sysobjects表.
参考技术D 与车牌有关,跟b表无关

MYSQL下统计一个字段中出现字符串的种类和个数

某表有字段field1,这个字段中的数据可能出现‘aaa,bbb’,‘bbb,ccc’,‘ccc,aaa’等类似形式的多条数据,现在想分类统计各种字符串类型的出现次数,例如aaa出现多少次,要怎么写SQL语句啊
不好意思,我没说清楚,aaa,bbb,ccc都是未知的,也就是说可能有很多仲情况,要求把所有出现过的字符串都列举出来并统计出现过的次数,也有可能是一条数据中只出现aaa或者bbb

参考技术A select field1,count(*) from table group by field1

这个就是解决你那问题的。自己试下先。
参考技术B select sum(case when field1 like '%aaa%' then 1 else 0 end) as aaacount,sum(case when field1 like '%bbb%' then 1 else 0 end) as bbbcount from table1;

以上是关于SQL怎么统计个数的主要内容,如果未能解决你的问题,请参考以下文章

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

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

python,字符串怎么统计单词个数

SQL中如何统计查询结果中某一列重复值的个数?

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

半小时分组统计个数sql