当前位置:首页 » 编程语言 » sql表分组

sql表分组

发布时间: 2022-02-24 19:19:48

A. sql如何多表分组统计一起显示

这样改试一下:
select * from (
SELECT qw, COUNT(qw) AS a1 FROM mrmxb GROUP BY qw union
SELECT bw, COUNT(bw) AS a1 FROM mrmxb GROUP BY bw union
SELECT sw, COUNT(sw) AS a1 FROM mrmxb GROUP BY sw union
SELECT gw, COUNT(gw) AS a1 FROM mrmxb GROUP BY gw ORDER BY 2)derivedtbl

看行不行。

B. 使用sql分组并且查询出多张表

--建表
CreateTableT
(
idintidentity(1,1),
CreateDateDatetime
)

--插入数据
insertintoT(CreateDate)values('2014-05-01')
insertintoT(CreateDate)values('2015-06-02')
insertintoT(CreateDate)values('2016-07-03')
insertintoT(CreateDate)values('2014-08-04')
insertintoT(CreateDate)values('2014-09-05')
insertintoT(CreateDate)values('2015-10-06')
insertintoT(CreateDate)values('2016-10-04')
insertintoT(CreateDate)values('2014-12-08')

--查询
Declare@sqlVarchar(8000)=''
Select@sql=@sql+'Select*FromTWhereyear(createdate)='+Cast(YAsVarchar(4))+';'
From
(
SelectDistinctYEAR(CreateDate)AsYFromT
)s
exec(@sql)

--如果需要生成新的表,这样就可以了
Declare@sqlVarchar(8000)=''
Select@sql=@sql+'Select*into['+Y+']FromTWhereyear(createdate)='+Y+';'
From
(
SelectDistinctCast(YEAR(CreateDate)AsVarchar(4))AsYFromT
)s
exec(@sql)


C. 怎样将SQL中的表按照分组排列

http://..com/question/305464467.html
一样的问题
参看上面链接那个吧

D. sql 分组统计

--SQL SERVER 2000 动态SQL。
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名'
exec(@sql)

普通行列转换
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):
姓名 语文 数学 物理
---- ---- ---- ----
李四 74 84 94
张三 74 83 93
-------------------
*/
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
go

--SQL SERVER 2000 静态SQL,指课程只有语文、数学、物理这三门课程。(以下同)
select 姓名 as 姓名 ,
max(case 课程 when '语文' then 分数 else 0 end) 语文,
max(case 课程 when '数学' then 分数 else 0 end) 数学,
max(case 课程 when '物理' then 分数 else 0 end) 物理
from tb
group by 姓名

E. SQL多表分组查询

selectt1.*,t2.English
from
(selecta.id,a.name,a.address,MAX(b.Chinese)Chinesefromstudenta,Scoreb
wherea.id=b.idgroupbya.id,a.name,a.address)t1,
scoret2
wheret1.id=t2.idandt1.Chinese=t2.Chinese

F. sql分组统计

方法和详细的操作步骤如下:

1、第一步,创建一个测试表,详细代码见下图,转到下面的步骤。

G. sql 分组编序号

题主你已经把SQL文写出来了,既然谁时间早排前面,那你把desc去掉就行了。

SELECT*FROM(SELECTROW_NUMBER()OVER(PARTITIONBYSUBSTRING(CONVERT(varchar(100),Time,20),0,11)ORDERBYTime)ASxh,*FROMdbo.表)T

我用的oracle数据库,sql文如下:

SELECT*FROM(SELECTROW_NUMBER()OVER(PARTITIONBYto_char(t.time,'yyyy-mm-dd')ORDERBYTime)ASxh,t.*FROMtestt)

H. SQL 分组

select t1.name,t1.grade,sum(t2.chengji) as chengji from t1,t2 where t1.id=t2.id group by t1.name,t1.grade

I. SQL数据分组汇总

你没说什么数据库,,,

提供sqlserver的方法


SELECTLEFT(c,CHARINDEX('-',c)-1),sum(d)
from表
groupbyLEFT(c,CHARINDEX('-',c)-1)

J. sql语句怎么对一张数据表进行分组

declare @n int
declare @i int
declare @sql varcahr(2000)

select @n=count(*) from tb
group by 班级

set @i=0
set @sql=''
where @i<@n
begin
set @sql = 'create table tb'+@i+'('+
' 班级 varchar(10),成绩 int)'
end
exec(@sql)

--有多少个班级,就创建多少个表,然后再用游标将各个班的成绩插入到不同的表里

热点内容
linux链接库 发布:2025-07-02 00:53:06 浏览:676
数据库的划分的 发布:2025-07-02 00:43:19 浏览:655
补码源码和 发布:2025-07-02 00:37:25 浏览:979
centos7mysql远程访问 发布:2025-07-02 00:35:58 浏览:712
有线认证服务器地址错误 发布:2025-07-02 00:33:22 浏览:278
本田思域2021款买哪个配置 发布:2025-07-02 00:31:43 浏览:326
安卓十二系统什么时候更新 发布:2025-07-02 00:12:28 浏览:346
shell脚本需要编译链接 发布:2025-07-02 00:04:20 浏览:475
微信如何重设密码 发布:2025-07-02 00:02:27 浏览:546
java代码基础 发布:2025-07-02 00:00:46 浏览:306