统计 SQL 写法

作者&投稿:韩朱 (若有异议请与网页底部的电邮联系)
SQL统计写法~

多少个物料组:
select DISTINCT 物料组 from tablename
统计一下就行了,
或者直接:
select COUNT(物料组) from TableName(select DISTINCT 物料组 from tablename)

select 型号,类型,sum(长度) as 长度 from 表名 group by 型号,类型
表名替换一下你自己的

select
u='a','1'=SUM(case
a
when
'1'
then
1
else
0
end),
'2'=SUM(case
a
when
'2'
then
1
else
0
end),
'3'=SUM(case
a
when
'3'
then
1
else
0
end)
from
dbo.abc
union
select
u='b','1'=SUM(case
b
when
'1'
then
1
else
0
end),
'2'=SUM(case
b
when
'2'
then
1
else
0
end),
'3'=SUM(case
b
when
'3'
then
1
else
0
end)
from
dbo.abc
union
select
u='c','1'=SUM(case
c
when
'1'
then
1
else
0
end),
'2'=SUM(case
c
when
'2'
then
1
else
0
end),
'3'=SUM(case
c
when
'3'
then
1
else
0
end)
from
dbo.abc
这个属于列转行的一个统计查询,通常来说是需要指定a,b,c这些字段的值的种类写成固定的语句,而你的需求这里的值是未知的,只能通过动态的生成查询语句来进行统计,但也有个前提就是最好是知道这里值的范围。比如1-10,就把1-10的可能都列出来。
如果这里值太多的话,那么就需要换一种方法了,专门建立一个统计表,通过触发器当表中数据变化时更新统计表的统计数据,需要查看统计的时候直接查询统计表

SELECT
U,

SUM(DECODE(V,
'1',
COUN))
u1,

SUM(DECODE(V,
'2',
COUN))
u2,

SUM(DECODE(V,
'3',
COUN))
u3

FROM
((SELECT
'a'
U,
A
V,
COUNT(1)
COUN
FROM
ABC_T
GROUP
BY
A)
UNION
ALL

(SELECT
'b'
U,
B
V,
COUNT(1)
COUN
FROM
ABC_T
GROUP
BY
B)
UNION
ALL

(SELECT
'c'
U,
C
V,
COUNT(1)
COUN
FROM
ABC_T
GROUP
BY
C))
GROUP
BY
U

单独靠sql
实现不了,因为数字是确定的,必须用代码拼sql
才行,先获取a,b,c
的不同值,再结合case
when
语句才行

select 班级=班级名称,人数=count(1) from 表名 group by 班级名称
这是最优化速度最快的算法了

select 班级名称,count(学生名称) as 学生人数 from 表名
group by 班级名称


六合区14778073510: SQL怎么统计个数? -
肥伊苏力: 方法一: SELECT SUM(正确数)+SUM(错误数) AS 总记录数,SUM(正确数),SUM(错误数) FROM ( SELECT COUNT(1) 正确数,0 错误数 FROM TB WHERE STATUS=1 UNION ALL SELECT 0 正确数,COUNT(1) 错误数 FROM ...

六合区14778073510: sql语句统计查询结果数量怎么写? -
肥伊苏力: 可以通过count函数来实现. sqlOne:select * from tablename1 where id>5;此语句查询出来多条记录,之后看做一个新的表. sqlTwo:select conut(*) from (select * from tablename1 where id>5) as tablename2;此语句即可查询出来统计的记录条...

六合区14778073510: 如何写统计的sql语句?
肥伊苏力: sum(case when aa = 1 then 1 else 0),select field1,sum(case when aa = 0 then 1 else 0), sum(case when aa = 2 then 1 else 0), count(fild1)from tablenamegroup by field1如许机能可能不是很好,然则如不雅不须要在一个sql中解决,那就随便你怎么写了,可以用视图.

六合区14778073510: 一个统计的sql写法
肥伊苏力: SELECT U, SUM(DECODE(V, '1', COUN)) u1, SUM(DECODE(V, '2', COUN)) u2, SUM(DECODE(V, '3', COUN)) u3 FROM ((SELECT 'a' U, A V, COUNT(1) COUN FROM ABC_T GROUP BY A) UNION ALL (SELECT 'b' U, B V, COUNT(1) COUN FROM ABC_T GROUP BY B) UNION ALL (SELECT 'c' U, C V, COUNT(1) COUN FROM ABC_T GROUP BY C)) GROUP BY U

六合区14778073510: 请问SQL统计语句该怎么写呢 -
肥伊苏力: select count(*) as 新名 from 表 where 条件 group by 字段

六合区14778073510: SQL语句 查询 统计 -
肥伊苏力: 1.select * from 学生表 2.select 学号,姓名,年龄 from 学生表 3.select 学号,姓名,年龄 from 学生表 where 年龄 between 18 and 20 and 系别='IS' 4.select 学号,姓名,年龄 from 学生表 where 姓名 like '李%' or 姓名 like '李%' 5 select distinct ...

六合区14778073510: 统计人数SQL语句怎么写 -
肥伊苏力: insert into 表2 ([部门],[人数])select [部门],count(人数) from 表1 group by 部门

六合区14778073510: 统计sql怎么写啊
肥伊苏力: sql2005及以上 用pivot ,以下用case when

六合区14778073510: SQL统计查询怎么写?
肥伊苏力:SELECT 来源, COUNT(来源) AS 数量 FROM 表名 GROUP BY 来源;

六合区14778073510: Sql 查询统计语法怎么写? -
肥伊苏力: Oracle有一个select trunc(sysdate ,'mm') from dual --本月开始日期,你在做一下转换成字符串,截取字符串去掉后面的天数,就可实现 select trunc(KeyInDate) , OwnerName, count(*) total from user group by trunc(KeyInDate) , OwnerName

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网