在mysql数据库查询语句当中,group by分组条件语句使用概率,相对要少的多,一般在分组统计的时候会用到,如:统计商品分类的总价。group by,顾名思义,就是对数据进行分组查询。一般情况下,group by 会结合数据库的聚合函数一起使用。下面,以一个例子来直观介绍。
例:商品数据库 goods
cat_id:商品分类ID;
good_id:商品ID;
good_name:商品名
shop_price: 价格
shop_number:商品已销售数量
语句一:
select * from goods group by cat_id;
意思是按 分类ID来分组查询goods表。查询结果如下:
从结果中,我们会发现,只获取到了每个商品分类的第一个商品。这就是group by查询的规律,所以,我们一般不会用它来分组查询商品列表,而是用来查询分类商品的聚合信息,如:每类商品的总销量、每类商品的总销售额、每个商品总销售额等。
语句二:获取每个商品的总销售额。
select good_id,sum(shop_price * shop_number) from goods groud by good_id;
这里我们是按good_id商品ID来分组查询来获取每一个商品的销售额,查询结果如下:
语句三:获取每个商品分类的总销售额。
select cat_id,sum(shop_price * shop_number) from goods group by cat_id;
这里按cat_id分类ID来进行分组查询,查询结果:
这里,我们使用group by 结合数据库聚合函数sum()来进行分组查询。这里只是简单地列举了一个例子作为案例介绍,虽然在日常的php开发中很少用到它,但如果是开发商城类的网站,需要用到统计相关的东西,group by就会派上大用场。