_003_group by 与where

注意:where肯定在group by 之前。

一,group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛选。

二,需要注意having和where的用法区别:

  1. having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。

  2. where肯定在group by 之前。

3.where后的条件表达式里不允许使用聚合函数,而having可以。

三,当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是:

1.执行where xx对全表数据做筛选,返回第1个结果集。

2.针对第1个结果集使用group by分组,返回第2个结果集。

3.针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。

4.针对第3个结集执行having xx进行筛选,返回第4个结果集。

5.针对第4个结果集排序。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
Java中的group是正则表达式中的一个概念,表示匹配到的子串。在Matcher类中,group有多个重载方法,可以根据组号或组名获取匹配到的子串,也可以获取子串在原字符串中的起始和结束位置。具体方法如下: - int groupCount():返回匹配到的组数,不包括group(0)。 - String group(int group):返回指定组号的匹配子串。 - int start(int group):返回指定组号匹配子串在原字符串中的起始位置。 - int end(int group):返回指定组号匹配子串在原字符串中的结束位置。 - String group(String name):返回指定组名的匹配子串。 - int start(String name):返回指定组名匹配子串在原字符串中的起始位置。 - int end(String name):返回指定组名匹配子串在原字符串中的结束位置。 例如,对于字符串"John writes Java code",使用正则表达式"(\w+) writes (\w+) code"进行匹配,可以得到两个组,分别是"John"和"Java"。代码如下: ```java String str = "John writes Java code"; Pattern pattern = Pattern.compile("(\\w+) writes (\\w+) code"); Matcher matcher = pattern.matcher(str); if (matcher.find()) { System.out.println("found group: group(0) is '" + matcher.group(0) + "'"); System.out.println("found group: group(1) is '" + matcher.group(1) + "', group(2) is '" + matcher.group(2) + "'"); System.out.println("groupCount is ->" + matcher.groupCount()); System.out.println("start(1) is ->" + matcher.start(1) + ", end(1) is ->" + matcher.end(1)); System.out.println("start(2) is ->" + matcher.start(2) + ", end(2) is ->" + matcher.end(2)); } ``` 输出结果为: ``` found group: group(0) is 'John writes Java code' found group: group(1) is 'John', group(2) is 'Java' groupCount is ->2 start(1) is ->0, end(1) is ->4 start(2) is ->12, end(2) is ->16 ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值