统计sql
1. sql统计语句有哪些
sql语言诞生有一段时间了,里面有一些自带的很方便的函数,对于操作数据库来说是非常方便的,下面就介绍几种统计。
2. SQL语句 查询 统计
这几个表里有哪几个列要告诉我们呀!
hotyxm - 高级魔法师 六级 最后一个题目好像有误.应该是:
select 学生姓名,count(课程编号) from 选课表 group by 学生号having count(课程编号)>=4;
不过你还是要把这几个表详细说下才好,上面这个SQL语句是跟据一般可能有和列和表来写的.
hotyxm - 高级魔法师 六级的回答可能还有其它错误.我没细看.但好像他就是从学生表里来查东西,一个表怎么能有那么多东西,会出异常的.
你不详细说明一下有哪些表和哪些列,我也不好跟你写.
3. 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"的形式查询出结果。
4. SQL 统计数量
--表A和表B分开来统计,最后合并两个统计结果
时间在一个范围内用 时间A between '时间1' and '时间2'
由于不是很明白你的分组统计原则,所以group by语句暂时无法提供建议
5. SQL怎么统计个数
不同数据库的系统表可能不一样,比如informix就是systables
的
tabname。
informix数据库:
统计个数:
select
count(*)
from
systables
where
tabname
like
'%abc%'
查看表:
select
tabname
from
systables
where
tabname
like
'%abc%'
其他数据库的话,系统表可能是sysobjects,对应的列可能也有不同,看你的情况改吧。
6. sql统计查询
如果只有这3个固定日期.可以教你一个简单行转列的方法。
但如果日期是随机的,那就要用到动态SQL了.
先写出简单的来.
SELECT name,
SUM(CASE WHEN date = '2008-1-12' THEN 1 ELSE 0 END) as 2008-1-12,
SUM(CASE WHEN date = '2008-1-13' THEN 1 ELSE 0 END) as 2008-1-13,
SUM(CASE WHEN date = '2008-1-16' THEN 1 ELSE 0 END) as 2008-1-16
FROM tablename GROUP BY name
下面是按照上面例子中写出的动态SQL语句.
CREATE TABLE tba
(
id int,
date datetime,
name varchar(10)
)
GO
INSERT INTO tba
SELECT 1,'2008-1-12', 'a' union all
SELECT 2,'2008-1-12', 'b' union all
SELECT 3,'2008-1-13', 'a' union all
SELECT 4,'2008-1-13', 'a' union all
SELECT 5,'2008-1-16', 'b'
CREATE TABLE #tmp
(
id INT IDENTITY(1,1),
date datetime
)
DECLARE @strsql VARCHAR(8000)
DECLARE @id INT,@rowcount INT, @date datetime
INSERT INTO #tmp(date) SELECT CONVERT(VARCHAR(10),date,23) FROM tba GROUP BY CONVERT(VARCHAR(10),date,23)
SELECT @rowcount = @@RowCount,@id = 1
SELECT @strsql = 'SELECT name'
WHILE @id <= @rowcount
BEGIN
SELECT @date = date FROM #tmp WHERE id = @id
SELECT @strsql = @strsql + ',SUM(CASE date WHEN ''' + CONVERT(VARCHAR(10),@date,23) + ''' THEN 1 ELSE 0 END) as [' + CONVERT(VARCHAR(10),@date,23) + ']'
SELECT @id = @id + 1
END
SELECT @strsql = @strsql + ' FROM tba GROUP BY name'
EXEC(@strsql)
DROP TABLE #tmp
GO
7. sql 统计数量
select 学生表.学号, 选课数 into 选课数统计表 from 学生表 left join (select 学号, count(*) as 选课数 from 学生选课表 group by 学号) tmbdb on 学生表.学号=tmpdb.学号
8. sql统计数量
select 部门名称,count(id) as '员工人数 ' from A inner join B on B.a_id=A.id
9. SQL怎么统计个数
方法一:
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