题目描述
从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过滤下,意思要先查询emp_no,title然后再分组查询
select b.title,count(b.title) as t
FROM
(SELECT DISTINCT(a.emp_no),a.title
FROM titles a) as b
group by b.title HAVING t>=2
解析二:更简单的写法是先分组,由于要给emp_no去重,可以只是统计分组里的emp_no就行了
SELECT title, COUNT(DISTINCT emp_no) AS t FROM titles
GROUP BY title HAVING t >= 2