题目:从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
注意对于重复的emp_no进行忽略。
题意:每个title下,emp_no重复的员工忽略不计
方法1:GROUPBY+HAVING,子查询,先去重再计数
SELECT title, COUNT(*) t
FROM (SELECT DISTINCT emp_no,title FROM titles)
GROUP BY title
HAVING t>=2;
补充:当DISTINCT应用到多个字段时,其应用范围是其后面的所有字段,而不是紧挨它的一个字段
注意:DISTINCT只能放在所有字段前面,所以上面的DISTINCT emp_no和title不可以交换
方法2:Distinct,考虑去重的部分中计数
SELECT title, COUNT(DISTINCT emp_no) t
FROM titles
GROUP BY title
HAVING t>=2;