我试图弄清楚如何获得有条件且不使用分组的东西的独特计数。我有一张表格,其中包含如下所示的列:
Employeeid,Training_Course_name,CompletedDate
有些课程中包含Rope这个词。 我想用每个人完成的课程数量和#34; Rope"在标题中,除以标题中有单词rope的唯一课程数量。如果有15个唯一的课程名称在标题中包含单词rope,无论他们被分配给谁,我想得出这个数字并将其分成每人完成的绳索课程数。 / p>
答案 0 :(得分:0)
您可以使用条件聚合:
select count(distinct case when Training_Course_name like '%rope%'
then Training_Course_name
end) as courses_with_rope
答案 1 :(得分:0)
这将帮助您解决问题
Declare @UniqueCourses As TABLE(Course As VarChar(32))
Select @UniqueCourses = Training_Course_Name
From
(SELECT DISTINCT Training_Course_Name
FROM Employess
WHERE Training_Course_Name LIKE '%Rope%') A
SELECT
EmpId,
(SELECT COUNT(1) FROM Employees innerEmployees
WHERE innerEmployees.EmpId = outerEmployees.EmpId AND
innerEmployees.CompletedDate is not null
) AS Completed Courses
From Employees outerEmployees
答案 2 :(得分:0)
您可以使用此查询获取带有单词rope的课程
SELECT Employeeid, Training_Course_name, CompletedDate
FROM Table_Name_You_Did_Not_Say
WHERE Training_Course_name LIKE '%rope%'
这是一个非常重要的计数
SELECT Employeeid, Training_Course_name, CompletedDate,
count(distinct Training_Course_name) as distinct_names
FROM Table_Name_You_Did_Not_Say
WHERE Training_Course_name LIKE '%rope%'
任何“按员工ID”都需要一个小组 - 那么你的要求到底是什么?