sql统计个数
‘壹’ sql语句统计查询结果数量怎么写
可以通过count函数来实现。
sqlOne:select * from tablename1 where id>5;此语句查询出来多条记录,之后看做一个新的表。
sqlTwo:select conut(*) from (select * from tablename1 where id>5) as tablename2;此语句即可查询出来统计的记录条数。
备注:以上方法通用于所有的数据统计,如果是单表查询,可以直接通过:“select count( *) from tablename1 where id>5"的形式查询出结果。
‘贰’ sql统计数量
select 部门名称,count(id) as '员工人数 ' from A inner join B on B.a_id=A.id
‘叁’ SQL怎么统计个数
不同数据库的系统表可能不一样,比如informix就是systables
的
tabname。
informix数据库:
统计个数:
select
count(*)
from
systables
where
tabname
like
'%abc%'
查看表:
select
tabname
from
systables
where
tabname
like
'%abc%'
其他数据库的话,系统表可能是sysobjects,对应的列可能也有不同,看你的情况改吧。
‘肆’ sql语句统计数量 统计一个字段出现的数量
1、创建测试表,
create table test_stu(id number, u_name varchar2(20), subject varchar2(20));
create table test_subj(id number, subject varchar2(20));
‘伍’ sql 统计数量
select 学生表.学号, 选课数 into 选课数统计表 from 学生表 left join (select 学号, count(*) as 选课数 from 学生选课表 group by 学号) tmbdb on 学生表.学号=tmpdb.学号
‘陆’ sql语句统计数量,统计一个字段的值的数量
select type,count(*) as 总数量,
sum(case when level='一级' then 1 else 0 end) as 一级,
sum(case when level='二级' then 1 else 0 end) as 二级,
sum(case when level='三级' then 1 else 0 end) as 三级
from table group by type
楼上的应该改改吧
‘柒’ sql统计多个字段值数量
分两步实现
按月汇总
行列转换
请试一下,如有疑问,及时沟通!
----生成相应的技巧性文章
createtable#maomao365
(
[姓名]nvarchar(30),
[班级]nvarchar(20),
[分数]int,
[考试时间]date
)
go
insertinto#maomao365(
[姓名],[班级],
[分数],[考试时间]
)values
('张三','一班',89,'2019-1-1'),
('李四','二班',100,'2019-1-1'),
('王二','三班',60,'2019-1-1'),
('马子','四班',70,'2019-1-1'),
('maomao','一班',89,'2019-1-1'),
('小屋','二班',15,'2019-2-1'),
('sql','三班',69,'2019-2-1'),
('教程','四班',72,'2019-2-1'),
('宇宙','一班',63,'2019-3-1'),
('周猫猫','一班',50,'2019-4-1'),
('宙斯盾','二班',23,'2019-5-1'),
('潜水艇','三班',21,'2019-6-1'),
('其它','四班',20,'2019-7-1')
go
/*拼接字符串*/
declare@sqlvarchar(max)
set@sql='select*from
(select[班级],
[分数],month([考试时间])asmonthfrom#maomao365)asd
pivot(sum([分数])for[month]
in(
';/*动态组合列名*/
declare@lieMingvarchar(7000)---定义动态生成列名存放变量
declare@iint,@imaxint,@fieldvarchar(60)---定义临时循环变量
declare@fieldListtable(keyIdintidentity,fieldvarchar(60))---定义临时表,存放待生成动态列名的数据
insertinto@fieldList(field)selectdistinctmonth([考试时间])from#maomao365---生成列名数据
-------------循环表生成列名start--------------
set@lieMing=''
set@i=1
select@imax=max(keyId)from@fieldListt
while@i<@imax
begin
select@[email protected]=@i
ifisnull(@field,'')!=''
begin
if@lieMing!=''beginset@lieMing=@lieMing+','end
set@lieMing=@lieMing+'['+@field+']';
end
set@i=@i+1
end
-------------循环表生成列名end--------------
/*动态组合列*/
set@sql=@sql+@lieMing+'))t;';---拼接sql语句
print(@sql)
exec(@sql)
go
truncatetable#maomao365
droptable#maomao365
go
‘捌’ Sql统计数量
select
学号,
count(1)
as
学生选课数
from
学生选课表
group
by
学号
一张表足以,根本不需要学生表,除非要显示学生姓名。
count函数是计算按照学号分组之后的行数,也就是一行是选了一门。
放到一张表里,如果是建好的表,那么
insert
into
表
select
学号,
count(1)
as
学生选课数
from
学生选课表
group
by
学号
‘玖’ SQL 统计数量
--表A和表B分开来统计,最后合并两个统计结果
时间在一个范围内用 时间A between '时间1' and '时间2'
由于不是很明白你的分组统计原则,所以group by语句暂时无法提供建议