用于分组的SQL查询

时间:2012-02-20 09:33:08

标签: sql sql-server-2008

我需要查询帮助

我有一个表,其中Jobs和Employee被链接,其名为EmployeeToJobsApplied

Id    EmployeeId       JobsId      Applied     Viewed
 1         1             1            True      True
 2         1             2            False     True
 3         1             1            True      True
 4         1             3            True      True

如果您注意到ID = 3

中有重复值

我没有创建数据库结构。由于这是一个后期制作项目,因此我无法对表格结构做太多考虑。

我可以更改的是可以从此表中检索信息的StoredProcedure。

所以我需要的是应用作业总数的单列sigle行值

所以基本上我需要的是得到一个值

2个适用于员工ID的工作= 1

我想忽略重复项。

谢谢!

请随时编辑/重新标记

更新 我确实需要总结果, 我需要申请特定工作的员工总数(不是列表)。 我尝试使用计数而且没有相应的工作,因为它也算不了那些不同的人。感谢您的帮助

5 个答案:

答案 0 :(得分:2)

如果您需要聚合不同的值,那么您可以写:

select EmployeeId, count(distinct JobsId) as JobsApplied
from EmployeeToJobsApplied
where Applied = 1
group by EmployeeId

答案 1 :(得分:1)

使用distinct

select distinct * from tablename

答案 2 :(得分:0)

如果你的结果集中不需要id,那么使用distinct之类的东西很简单:

SELECT distinct employeeid, JobsId, Applied, Viewed
FROM EmployeeToJobsApplied

另外,您可以使用where子句删除Applied为false的结果:

WHERE Applied = true

答案 3 :(得分:0)

select distinct EmployeeId, JobsId from EmployeeToJobsApplied

因为您似乎并不关心应用和查看的列

答案 4 :(得分:0)

我们可以按列

分组,而不是分开
select id,JobsId,Applied,Viewed from Emp
group by id,JobsId

因为独特的性能。