重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如何分组数据,以便能汇总表内容的子集。这涉及两个新SELECT语句子句,分别是GROUP BY子句和HAVING子句。
创新互联专业为企业提供砚山网站建设、砚山做网站、砚山网站设计、砚山网站制作等企业网站建设、网页设计与制作、砚山企业网站模板建站服务,十年砚山做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。
分组是在SELECT语句的GROUP BY 子句中建立的。
来看例子理解:
mysqlselect vend_id,COUNT(*) AS num_prods from products group by vend_id;
也就是不同的Id的商品总数都能分别查出来。
除了能用GROUP BY分组数据外,Mysql还允许过滤分组,规定包括哪些分组,排除哪些分组。
也就是HAVING子句。
mysqlselect cust_id,COUNT( /) AS orders from orders uGROUP BY/u cust_id uHAVING/u COUNT( /) =2;
注意:这里HAVING换成WHERE是不管用的。HAVING针对于分组。
WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。
那么咱么看看怎么混合WHERE和HAVING。
mysqlselect vend_id, COUNT( / ) AS num_prods from products uwhere prod_price=10 group by/u vend_id HAVING COUNT( /) =2;
mysqlselect order_num,SUM(quantity*item_price) AS ordertotal
from orderitems
GROUP BY order_num
HAVING SUM(quantity*item_price) =50
order by ordertotal;
if
(mysql_connect('
localhost
','root','root')){
$query
=
"SELECT
count(aid)
as
ct
FROM
table
group
by
aid";//
从数据库中读取数据
,count出来加了别名ct用来获取数据时标示
字段名
用
if
($result=@mysql_query($query)){
while($rows=@
mysql_fetch_array
($result))
{
$rows[ct];//这里循环处理每一行ct字段的值
}
mysql_free_result
($result);
1、创建一张表,同时插入数据。
2、按照价格排序.select * from 表名 order by 字段名 [升序|降序]。
3、按照class分组(group by),数据会分成三类,肉类、蔬菜类、水果类。
4、按照class分组后在对结果做一个处理,统计三个类总钱数分别是多少。这里sum是mysql提供的内置函数(聚合函数),统计合的。
5、分组了之后可以通过聚合函数可以做一系列的查询操作,查询每个类中有多少个。
6、分组后面跟having做过滤。