题目描述
从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
注意对于重复的emp_no进行忽略。
CREATE TABLE IF NOT EXISTS “titles” (
emp_no
int(11) NOT NULL,
title
varchar(50) NOT NULL,
from_date
date NOT NULL,
to_date
date DEFAULT NULL);
解题思路
问题的难点与核心在于忽略重复的emp_no
。可以这么理解,先对title
分组处理,得到了分组后一个聚集,然后对分组后的title
的emp_no
进行去重,然后再计数。因为分组后,所有的聚集函数都是处理每个组的。
AC代码
SELECT title, COUNT(DISTINCT(emp_no)) AS t FROM titles GROUP BY title HAVING t >= 2