mysql group 关键字_mysql group by 分组查询

请看下表:

A095017172-176389.png_small.png

问题: 把统计时间(statistic)相同的,服务域(service_domain_moid) a中的hd100的数量的和与hd100s的数量的和计算出来。

使用方法: group by

首先,我们把service_domain_moid为a的筛选出来,如下:select * from statistic where service_domain_moid="a";

A095019359-176389.png_small.png

其次: 我们把统计时间(statistic_time)相同的分组,求和select sum(hd100), sum(hd100s) from statistic where service_domain_moid="a" group by statistic_time;

A095021578-176389.png_small.png

最后,把统计结果按降序排序:

A095023813-176389.png_small.png

对查询结果排序:

从表中查询出来的数据可能是无序的,或者其排列顺序不是用户所期望的顺序。为了使查询结果的顺序能满足用户的需求,可以使用ORDER BY 关键字对记录进行排序。其语法规则如下:ORDER BY 属性名 [ASC|DESC]

其中,“属性名”参数表示按照该字段进行排序;ASC参数表示按升序的顺序进行排序;DESC参数表示按降序的顺序进行排序。默认情况下,按照ASC进行排序。

分组查询:

GROUP BY 关键字可以将查询结果按某个字段或多个字段进行分组。字段中值相等的为一组。其语法规则如下:GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP]

其中,“属性名”是指按照该字段的值进行分组; “HAVING条件表达式”用来限制分组后的显示,满足条件表达式的结果将被显示; WITH ROLLUP 关键字将会在所有记录的最后加上一条记录。该记录是上面所有记录的总和。

GROUP BY 关键字可以和GROUP_CONCAT()函数一起使用。GROUP_CONCAT()函数会把每个分组中指定字段值都显示出来。同时,GROUP BY 关键字通常与集合函数一起使用。集合函数包括COUNT(), SUM(), AVG(), MAX()和MIN()。COUNT()用来统计记录的条数;SUM()用来计算字段的值的总和;AVG()用来计算字段的平均值;MAX()用来查询字段的最大值;MIN()用来查询字段的最小值。

GROUP BY 关键字与GROUP_CONCAT() 函数一起时,每个分组中指定字段值都显示出来。

GROUP BY 关键字与集合函数一起使用时,可以通过集合函数计算分组中的总记录,最大值,最小值等。

GROUP BY 关键字与HAVING ,如果加上”HAVING 条件表达式”, 可以限制输出的结果。如果满足条件表达式的结果才会显示。

说明: “HAVING 条件表达式”与”WHERE 条件表达式”都是用来限制显示的。但是,两者起作用的地方不一样。“WHERE 条件表达式”作用于表或者视图,是表和视图的条件。“HAVING条件表达式”作用于分组后的记录,用于选择满足条件的组。

GROUP BY 关键字与WITH ROLLUP 一起使用:

使用WITH ROLLUP时,将会在所有记录的最后加上一条记录。这条记录是上面所有记录的总和。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值