sqlservergroupby后获取其他字段(多种⽅法)
⼤家都知道⽤group by的话,select 后⾯指定的字段必须与group by后⾯的⼀致。group by 只有个别字段,如果拿出其他未分组的字段信息呢?在⽹上搜了下,
总结如下:
使⽤了group by 之后,就要求select后⾯的字段包含在group by 或聚合函数⾥⾯,这时如果想读取其它字段则⽆法实现。
将你需要的字段放进max或min函数中,max:⽀持字符类型、数字类型。
select
groupby是什么函数max(id) as id,username,password from users
group by username,password
order by id desc
或者⽤:
select * from
(select part from employee group by part) as t1
inner join
(select distinct englishname from employee where part in (select part from employee group by part )) as t2
on t1.part =t2.part
参考:
select v.p ,v.a,v.b,v.c,v.d,v.e,v.f,v.g,v.h,v.i,v.j,v.k,v.l,v.m,v.m,v.n,v.o from vegaga v right join (
select min(id) as id,a,b,c,d,e,f,g,h,n from vegaga where a is not null group by a,b,c,d,e,f,g,h,n
) as v1 on v1.id=v.id order by v.id
我在sqlserver中这样写,达到了我想要的效果。
select max(CrmMemberID) as CrmMemberID,MemberName,COUNT("MemberName") as count_name
from [zfnewdb].[dbo].[tblCrmMemberAssign]
group by MemberName
having COUNT("MemberName") = 1
不仅拿到了MemberName字段,还拿到了我想要的CrmMemberID字段。想要其它字段继续像上⾯的CrmMemberID字段那样加上就⾏了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。