sql算法练习——从titles表获取按照title进行分组(emp_no值不同)

题目:

从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
注意对于重复的emp_no进行忽略(即emp_no重复的title不计算,title对应的数目t不增加)。
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);

代码:

1 select title, count(distinct emp_no) as t from titles
2 group by title
3 having t >= 2;

笔记:

1、先用GROUP BY title将表格以title分组,再用COUNT(DISTINCT emp_no)可以统计同一title值且不包含重复emp_no值的记录条数
2、根据题意,输出每个title的个数为 t,故用AS语句将COUNT(DISTINCT emp_no)的值转换为 t
3、由于WHERE后不可跟COUNT()函数,故用HAVING语句来限定t>=2的条件
原文地址:https://www.cnblogs.com/john1015/p/13730679.html