当前位置:首页 » 编程语言 » sql统计显示字段
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql统计显示字段

发布时间: 2022-08-19 11:24:49

sql统计某一表的某字段的总值(sum)

group
by
后面跟的字段必须是Select后面不是聚合函数的字段,少一个都不行。select后面不是聚合函数的字段都是分组依据(几个字段同时相等才会分在一组里统计)
下面这句是按帐户分组统计(帐户一样的消费金额相加):
select
账户,sum(消费金额)
as
总金额

from

group
by
账户
而你给的代码是按你N个字段统计,结果肯定不对。
若还想显示其他字段,用下面的语句:
select
x.账户,消费日期...(你的其他字段),总金额
from

x,(select
帐户,sum(消费金额)as
总金额
from

group
by
账户)
as
y
where
x.帐户=y.帐户

❷ 如何统计SQL中某字段总数和符合某条件的数量

输入代码

select 名称
,count(*) as 总数量
,count(case when 类型='A' then 类型 else null end) as 类型为A的数
from 表名
group by 名称。

就可以统计SQL中某字段总数和符合某条件的数量。

❸ 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查询语句按条件统计字段值并在一个表中多列显示

这个sql可以通过将初始查询结果集用括号括起来当作一个子查询(也可以称之为虚拟表),然后再对其实施进一步筛选从而获得另一个结果集的办法予以实现。
例如列出各科平均分在80到90分的同学姓名和各科平均分
select stu.name,t.平均分 from stu,
(select sid,avg(score) as 平均分 from scores group by sid)t
where stu.sid=t.sid and t.平均分 between 80 and 90;
事实上Sql可以通过这种方法实现多重子查询筛选、嵌套和连接非常方便。

❺ SQL中如何在一个表中对一个字段进行统计

额,问题不太清楚。一般统计总的条目数是count(*),还有求平均的avg(),最大值max(),最小值min()等等。
举个例子:
select count(*) from table where 某=某
结果显示的是符合某=某条件的条数。

❻ sql里怎样统计一个字段中某个字符出现的个数

题目意思没明确。
假设查找的字符为“Z”
1、如果是一个字段中
某个字符出现的行数
select
count(1)
from
表名
where
字段名
like
'%Z%'
2、每个值里面Z的数量
select
len(字段名)-len(replace(字段名,'Z',''))
AS
Z的数量
from
表名
3、查找表里面该字段包含的所有Z的数量
select
SUM(len(字段名)-len(replace(字段名,'Z','')))
AS
Z的数量
from
表名
where
字段名
like
'%Z%'

❼ sql如何进行多个字段的统计个数

一种查询SQL如下, 利用union获得b和c各自的统计结果, 然后再一次统计整合到最终结果:

selectsum(d.b_cnt)+sum(d.c_cnt)astotal_cnt,sum(d.b_cnt)asb_cnt,casewhensum(d.b_cnt)=0then''elsed.valendasb_label,sum(d.c_cnt)asc_cnt,casewhensum(d.c_cnt)=0then''elsed.valendasc_labelfrom(selectbasval,count(b)asb_cnt,0asc_,0,count(c)asc_cntfromAgroupbyc)dgroupbyd.val

SQLSerer上的测试结果(栏位次序有变化),

total_cnt为总数, b_label为b栏值, b_cnt为b栏个数, c_labe为c栏值, c_cnt为c栏个数.

这个结果跟字段是否为整型无关, 它是统计记录出现的次数.

❽ sql 查询怎么统计多个字段各自的个数

--所有算的地方都用cast(个数asint)
createtabletest05
(avarchar(10),
bvarchar(10),
cvarchar(10))

insertintotest05select'#','一','三'unionall
select'@','一','三'unionall
select'¥','一','二'unionall
select'%','二','二'
select*fromtest05

selectb,COUNT(b)个数fromtest05groupbyb
selectc,COUNT(c)个数fromtest05groupbyc

selectSUM(isnull(t1.个数,0)+isnull(t2.个数,0))总数,sum(isnull(t1.个数,0))个数,t1.b,sum(isnull(t2.个数,0))个数,t2.cfrom
(selectb,COUNT(b)个数fromtest05groupbyb)ast1fulljoin
(selectc,COUNT(c)个数fromtest05groupbyc)ast2ont1.b=t2.c
groupbyt1.b,t2.c

❾ sql中怎么统计一个字段的数量

sqlserver为例
创建表及插入数据
create table 姓名表(id int,u_name varchar(10),subject varchar(10))create table 科目表(id int,s_name varchar(10))insert into 姓名表 values (1,'张三','英语')insert into 姓名表 values (2,'李四','德语')insert into 姓名表 values (3,'王五','日语')insert into 姓名表 values (4,'小明','英语')insert into 姓名表 values (5,'小狗','法语')insert into 科目表 values (1,'英语')insert into 科目表 values(2,'德语')insert into 科目表 values(3,'日语')insert into 科目表 values(4,'法语')
然后需要创建一个视图
create view v_subjectasselect a.s_name,SUM(case when a.s_name=b.subject then 1 else 0 end) countsfrom 科目表 a left join 姓名表 b on a.s_name=b.subjectgroup by a.s_name执行语句
declare @sql varchar(4000)set @sql = 'select sum(counts) as 合计'select @sql = @sql + ',sum(isnull(case [s_name] when '''+[s_name]+''' then [counts] end,0)) as ['+[s_name]+']'from (select distinct [s_name] from v_subject) as aselect @sql = @sql+' from [v_subject]'exec (@sql)结果截图

你结果里为什么会少呢?
这个主要是动态显示才这么复杂,比如你在科目表里再加个阿拉伯语,用这个也没问题,否则用case when的写法会比较有局限性