简说SQL题
题目描述
从titles表获取按照title进行分组,每组个数大于等于2,给出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);
解答思路:
题目要求分组查询,这里自然想到group by 关键字;再个分组之后还要添加条件进行过滤,自然会想到用having。
然而我们知道where也可以过滤条件,为什么不用where。一般where用于分组之前的行级别的过滤,having用于分组之后
的过滤。故sql语句为:
select title,count(*) as t from titles group by title having count(*)>=2;
做成比做好更重要