简说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;

posted @ 2020-02-01 20:21  果实1024  阅读(81)  评论(0编辑  收藏  举报