SQL 关联表内查询 最大每个数据MAX值 后统计 求助高手来100分 本人 百分百结算 记录~~~~

时间:2023-01-08 23:22:19
表 1
ID   NAME
1     A 
2     b
3     c

表2
ID UID NAME SMAX
1   1   A    1
2   1   A    2
3   2   B    1
4   2   B    2
5   3   C    1
6   3   D    2
求关联表 2的里边的 最大的 SMAX 字段的最大行数统计 应该是3  这个SQL 怎么写呢

9 个解决方案

#1


select count(*) from tb where smax=(select max(smax) from tb)

#2


不知说啥.

#3


select max([count]) from
(
select count(*) as [count] from 表2 group by SMAX
) tb

#4


引用楼主 cjx1234cjx 的帖子:
表 1 
ID  NAME 
1    A 
2    b 
3    c 

表2 
ID UID NAME SMAX 
1  1  A    1 
2  1  A    2 
3  2  B    1 
4  2  B    2 
5  3  C    1 
6  3  D    2 
求关联表 2的里边的 最大的 SMAX 字段的最大行数统计 应该是3  这个SQL 怎么写呢

select count(*) from tb where smax in (select max(SMAX) from tb2)

#5


create table tb(ID int,UID int,NAME varchar(10),SMAX int)
insert into tb values(1 , 1 , 'A' ,   1 )
insert into tb values(2 , 1 , 'A' ,   2 )
insert into tb values(3 , 2 , 'B' ,   1 )
insert into tb values(4 , 2 , 'B' ,   2 )
insert into tb values(5 , 3 , 'C' ,   1 )
insert into tb values(6 , 3 , 'D' ,   2 )
go

select count(*) from tb where smax in (select max(SMAX) from tb)

drop table tb

/*
            
----------- 
3

(所影响的行数为 1 行)
*/

#6


create table tb1(ID int, NAME varchar(10))
insert into tb1 values(1 ,   'A') 
insert into tb1 values(2 ,   'b') 
insert into tb1 values(3 ,   'c') 
create table tb2(ID int,UID int,NAME varchar(10),SMAX int)
insert into tb2 values(1 , 1 , 'A' ,   1 )
insert into tb2 values(2 , 1 , 'A' ,   2 )
insert into tb2 values(3 , 2 , 'B' ,   1 )
insert into tb2 values(4 , 2 , 'B' ,   2 )
insert into tb2 values(5 , 3 , 'C' ,   1 )
insert into tb2 values(6 , 3 , 'D' ,   2 )
go

--1,只需要tb2表
select count(*) from tb2 where smax in (select max(SMAX) from tb2)
/*
            
----------- 
3

(所影响的行数为 1 行)
*/


--2.联合两表按tb1.id = tb2.uid
select count(*) from tb1 m, 
(select * from tb2 where smax in (select max(SMAX) from tb2)) n 
where m.id = n.uid
/*
            
----------- 
3

(所影响的行数为 1 行)
*/
drop table tb1 , tb2

#7


不行啊 我用SQL 2005 测试 得出来的只有 最大的服务次数 你们统计有问题啊 把 SMAX 里边的值 改成不一样的 增加或减少 你们的统计就会出问题 大家在帮忙啊 

#8


SMAX 什么意思?

#9


同求答案,我要查的是表2按UID分组的最大smax,结果应该是
1 2
2 2
3 2
该如何写SQL?如果再加上Name分组呢?

#1


select count(*) from tb where smax=(select max(smax) from tb)

#2


不知说啥.

#3


select max([count]) from
(
select count(*) as [count] from 表2 group by SMAX
) tb

#4


引用楼主 cjx1234cjx 的帖子:
表 1 
ID  NAME 
1    A 
2    b 
3    c 

表2 
ID UID NAME SMAX 
1  1  A    1 
2  1  A    2 
3  2  B    1 
4  2  B    2 
5  3  C    1 
6  3  D    2 
求关联表 2的里边的 最大的 SMAX 字段的最大行数统计 应该是3  这个SQL 怎么写呢

select count(*) from tb where smax in (select max(SMAX) from tb2)

#5


create table tb(ID int,UID int,NAME varchar(10),SMAX int)
insert into tb values(1 , 1 , 'A' ,   1 )
insert into tb values(2 , 1 , 'A' ,   2 )
insert into tb values(3 , 2 , 'B' ,   1 )
insert into tb values(4 , 2 , 'B' ,   2 )
insert into tb values(5 , 3 , 'C' ,   1 )
insert into tb values(6 , 3 , 'D' ,   2 )
go

select count(*) from tb where smax in (select max(SMAX) from tb)

drop table tb

/*
            
----------- 
3

(所影响的行数为 1 行)
*/

#6


create table tb1(ID int, NAME varchar(10))
insert into tb1 values(1 ,   'A') 
insert into tb1 values(2 ,   'b') 
insert into tb1 values(3 ,   'c') 
create table tb2(ID int,UID int,NAME varchar(10),SMAX int)
insert into tb2 values(1 , 1 , 'A' ,   1 )
insert into tb2 values(2 , 1 , 'A' ,   2 )
insert into tb2 values(3 , 2 , 'B' ,   1 )
insert into tb2 values(4 , 2 , 'B' ,   2 )
insert into tb2 values(5 , 3 , 'C' ,   1 )
insert into tb2 values(6 , 3 , 'D' ,   2 )
go

--1,只需要tb2表
select count(*) from tb2 where smax in (select max(SMAX) from tb2)
/*
            
----------- 
3

(所影响的行数为 1 行)
*/


--2.联合两表按tb1.id = tb2.uid
select count(*) from tb1 m, 
(select * from tb2 where smax in (select max(SMAX) from tb2)) n 
where m.id = n.uid
/*
            
----------- 
3

(所影响的行数为 1 行)
*/
drop table tb1 , tb2

#7


不行啊 我用SQL 2005 测试 得出来的只有 最大的服务次数 你们统计有问题啊 把 SMAX 里边的值 改成不一样的 增加或减少 你们的统计就会出问题 大家在帮忙啊 

#8


SMAX 什么意思?

#9


同求答案,我要查的是表2按UID分组的最大smax,结果应该是
1 2
2 2
3 2
该如何写SQL?如果再加上Name分组呢?