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
(
select count(*) as [count] from 表2 group by SMAX
) tb
#4
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 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
(
select count(*) as [count] from 表2 group by SMAX
) tb
#4
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 2
2 2
3 2
该如何写SQL?如果再加上Name分组呢?