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() 内不能是多个字段。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-16
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(区域, '省', '')

第2个回答  2011-03-16
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(区域,'省','')

本回答被提问者采纳
第3个回答  2011-03-17
M sysobjects
WHERE (xtype = 'U')

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