如果重复,加入表获取第一个表上的第一个数据
Posted
技术标签:
【中文标题】如果重复,加入表获取第一个表上的第一个数据【英文标题】:Joining table get the first data on first table if duplicate 【发布时间】:2020-05-06 03:17:27 【问题描述】:嗨,我有 table1
和 table2
。
table1
是员工的日志时间表,table2
是员工的组码。
在table1
,一些员工有重复的时间,因为他们多次重复时间只是为了确保他们的时间。
表1
ID EMPID Time_IN
1 001 7:01 AM
2 004 7:04 AM
3 034 7:10 AM
4 034 7:11 AM
5 019 7:11 AM
6 019 7:12 AM
表2
ID empID GroupName
1 001 AA
2 004 AB
3 034 AA
4 019 AA
结果
GroupName CNT
AA 5
AB 1
预期结果
GroupName CNT
AA 3
AB 1
当前查询
Select b.GroupName, count(*) as cnt
from table1 a
inner join table2 b
on a.EMPID = b.empID
Group by b.GroupName
我怎样才能达到上述预期的结果?
提前谢谢你。
【问题讨论】:
【参考方案1】:你可以使用distinct count
如下:
select t2.groupname, count(distinct empid) as cnt
from table1 t1 join table2 t2
on t1.empid = t2.empid
group by t2.groupname
【讨论】:
【参考方案2】:join
对于您提出的问题是多余的:
select t2.GroupName, count(*) as cnt
from table2 t2
group by t2.GroupName;
这比join
ing 和使用count(distinct)
更有效。您可能真的有一个不同的问题,应该作为新问题提出。
【讨论】:
以上是关于如果重复,加入表获取第一个表上的第一个数据的主要内容,如果未能解决你的问题,请参考以下文章