GROUP BY关键字可以将查询结果按某个字段或多个字段进行分组。
语法:GROUP BY 字段名 [HAVING条件表达式] [ WITH ROLLUP];
说明:如果单独使用GROUP BY关键字,查询结果只显示一个分组的第一条记录。“HAVING 条件表达式”与“WHERE 条件表达式”都是用来限制显示的。但是,两者起作用的地方不一样。“WHERE 条件表达式”作用于表或者视图,是表和视图的查询条件。“HAVING 条件表达式”作用于分组后的记录,用于选择满足条件的组。
where针对表中的列发挥作用,查询数据。
having对查询结果中的列发挥作用,筛选数据。
SELECT id AS 商品id, NAME 名称, keyword 关键词, content 详情, price 价格, stock 库存, score 评分, on_sale_time 上架时间,create_time 创建时间, update_time 更新时间 FROM mydb.sh_goods;
SELECT id AS 商品id, NAME 名称, keyword 关键词, content 详情, price 价格, stock 库存, score 评分, on_sale_time 上架时间,create_time 创建时间, update_time 更新时间 FROM mydb.sh_goods GROUP BY keyword;
SELECT id AS 商品id, NAME 名称, keyword 关键词, content 详情, price 价格, stock 库存, score 评分, on_sale_time 上架时间,create_time 创建时间, update_time 更新时间 FROM mydb.sh_goods GROUP BY keyword HAVING stock>0;
SELECT id AS 商品id, NAME 名称, keyword 关键词, content 详情, price 价格, stock 库存, score 评分, on_sale_time 上架时间,create_time 创建时间, update_time 更新时间 FROM mydb.sh_goods GROUP BY keyword HAVING COUNT(keyword)>=3;