题目描述
从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);
SQL实现
select title, count(emp_no) as t
from titles
group by title
having t >= 2
解题关键:
1、用count函数而不是sum函数;
2、这里用having而不是where
where子句在分组之前过滤数据,在GROUPBY语句之前,SQL会在分组之前计算WHERE语句;
having子句在分组之后过滤数据,在GROUPBY语句之后,SQL会在分组之后计算HAVING语句。
原文地址:https://www.cnblogs.com/pan2575184309/p/10434784.html
时间: 2024-08-30 17:11:37