用HAVING
用SELECT命令表达查询的较完整的语法格式是:
SELECT<目标表的列名或列表达式序列>
FROM<表名序列>
[WHERE<行条件表达式>]
[GROUP BY<列名>
[HAVING<组条件表达式>]]
[ORDER BY<列名>[DESC],…];
其执行过程如下:
(1) 读取FROM子句中表或视图的数据,执行笛卡尔乘积操作。
(2) 选取满足WHERE子句中给出的条件表达式的元组。
(3) 按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。
(4) 按SELECT 子句中给出 的列名或列表达式求值输出。
(5) 按ORDER子句对输出的目标表进行排序,按附加说明DESC降序排列,默认为升序排列
SELECT<目标表的列名或列表达式序列>
FROM<表名序列>
[WHERE<行条件表达式>]
[GROUP BY<列名>
[HAVING<组条件表达式>]]
[ORDER BY<列名>[DESC],…];
其执行过程如下:
(1) 读取FROM子句中表或视图的数据,执行笛卡尔乘积操作。
(2) 选取满足WHERE子句中给出的条件表达式的元组。
(3) 按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。
(4) 按SELECT 子句中给出 的列名或列表达式求值输出。
(5) 按ORDER子句对输出的目标表进行排序,按附加说明DESC降序排列,默认为升序排列
--取出表table中ticket = 1 and ticket数量大于等于2
select ID , count(ticket) AS NUM from table
where ticket = 1
group by ID
having count(ticket) >= 2
where ticket = 1
group by ID
having count(ticket) >= 2