group_groupbox - CSDN
精华内容
参与话题
  • 正则表达式以及group的用法

    千次阅读 2018-10-18 18:58:31
    前言:这里我只是整理了一些网上的例子,刚好能解决我的疑惑,顺便也将学习成果记录下来。 1、re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。...

    前言:这里我只是整理了一些网上的例子,刚好能解决我的疑惑,顺便也将学习成果记录下来。


    1、re.match函数

    re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

    re.match(pattern, string, flags=0)
    

    2、re.search方法

    re.search 扫描整个字符串并返回第一个成功的匹配。

    re.search(pattern, string, flags=0)

    re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

    3、re.findall方法

    在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。再次强调是返回是列表,所以当用到findall时,一定注意是直接打印不出来的,要遍历。

    findall(string[, pos[, endpos]])

    参数:

    • string : 待匹配的字符串。
    • pos : 可选参数,指定字符串的起始位置,默认为 0。
    • endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。
    import re
     
    pattern = re.compile(r'\d+')   # 查找数字
    result1 = pattern.findall('runoob 123 google 456')
    result2 = pattern.findall('run88oob123google456', 0, 10)
     
    print(result1)
    print(result2)
    
    结果:
    ['123', '456']
    ['88', '12']

    4、group的方法

    (这部分是转载于:http://www.cnblogs.com/kaituorensheng/archive/2012/08/20/2648209.html

    正则表达式中,group()用来提出分组截获的字符串,()用来分组

    import re
    a = "123abc456"
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0)   #123abc456,返回整体
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1)   #123
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2)   #abc
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3)   #456

    究其因

    1. 正则表达式中的三组括号把匹配结果分成三组

    •  group() 同group(0)就是匹配正则表达式整体结果
    •  group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。

    2. 没有匹配成功的,re.search()返回None

    3. 当然正则表达式中没有括号,group(1)肯定不对了

    4.1 match.group([group1,…])

    import re
    
    #定义了两个group,因为包含两个括号
    m = re.match("(\w+) (\w+)", "Isaac Newton, physicist")
    
    #group(0)就是匹配的整个结果
    print(m.group(0))                           #输出结果为Isaac Newton
    
    #group(1)是第一个group的值
    print(m.group(1))                           #输出结果为Isaac
    
    #group(2)是第二个group的值
    print(m.group(2))                           #输出结果为Newton
    
    
    #groups返回所有的group,以元组的形式
    print(m.groups())                           #输出结果为('Isaac','Newton')  

    4.2findall(pattern, string, flag)

    import re
    
    if __name__ == '__main__':
    
        #用于测试的字符串
        str = "<h1>liuwei</h1><a href='www.baidu.com'></a><h1>zhangbin</h1><a href='www.love.com'></a>"
    
        regex = re.compile("<h1>(.+?)</h1><a(.+?)></a>")      #定义了两个group,两个括号
    
        res = regex.search(str)                               #search用于找到第一个满足匹配的子串,并返回                      
    
        print("group1:%s" %res.group(1))                      #输出结果为liuwei          
        print("group2:%s" %res.group(2))                      #输出结果为href='www.baidu.com'
    
        res1 = regex.findall(str)                             #findall输出所有满足的匹配
        print("res1:%s" %res1)               
        #输出结果 [('liuwei', " href='www.baidu.com'"), ('zhangbin', " href='www.love.com'")]
    
        print(res1[0])                                        #输出结果为('liuwei', 'www.baidu.com')
        print(res1[1])                                        #输出结果为('zhangbin, 'www.love.com')

     

    参考资料:

    python基础教程:http://www.runoob.com/python/python-reg-expressions.html

    http://www.cnblogs.com/kaituorensheng/archive/2012/08/20/2648209.html

    https://blog.csdn.net/jeryjeryjery/article/details/77196497

     

    展开全文
  • 理解group by

    万次阅读 多人点赞 2018-09-25 11:27:42
    先来看下表1,表名为test:   表1  执行如下SQL语句: 1 ... GROUP BY name ... 可是为了能够更好的理解“group by”多个列“和”聚合函数“的应用,我建议在思考的过程中,由表1到表2的过程中...

    先来看下表1,表名为test:

     

    表1

      执行如下SQL语句:

    1

    2

    SELECT name FROM test

    GROUP BY name

      你应该很容易知道运行的结果,没错,就是下表2:

     

    表2

      可是为了能够更好的理解“group by”多个列“”聚合函数“的应用,我建议在思考的过程中,由表1到表2的过程中,增加一个虚构的中间表:虚拟表3。下面说说如何来思考上面SQL语句执行情况:

    1.FROM test:该句执行后,应该结果和表1一样,就是原来的表。

    2.FROM test Group BY name:该句执行后,我们想象生成了虚拟表3,如下所图所示,生成过程是这样的:group by name,那么找name那一列,具有相同name值的行,合并成一行,如对于name值为aa的,那么<1 aa 2>与<2 aa 3>两行合并成1行,所有的id值和number值写到一个单元格里面。

     

    3.接下来就要针对虚拟表3执行Select语句了:

    (1)如果执行select *的话,那么返回的结果应该是虚拟表3,可是id和number中有的单元格里面的内容是多个值的,而关系数据库就是基于关系的,单元格中是不允许有多个值的,所以你看,执行select * 语句就报错了。

    (2)我们再看name列,每个单元格只有一个数据,所以我们select name的话,就没有问题了。为什么name列每个单元格只有一个值呢,因为我们就是用name列来group by的。

    (3)那么对于id和number里面的单元格有多个数据的情况怎么办呢?答案就是用聚合函数,聚合函数就用来输入多个数据,输出一个数据的。如cout(id),sum(number),而每个聚合函数的输入就是每一个多数据的单元格。

    (4)例如我们执行select name,sum(number) from test group by name,那么sum就对虚拟表3的number列的每个单元格进行sum操作,例如对name为aa的那一行的number列执行sum操作,即2+3,返回5,最后执行结果如下:

     (5)group by 多个字段该怎么理解呢:如group by name,number,我们可以把name和number 看成一个整体字段,以他们整体来进行分组的。如下图

    (6)接下来就可以配合select和聚合函数进行操作了。如执行select name,sum(id) from test group by name,number,结果如下图:

    (已失效)文章出处:理解group by和聚合函数

    注意:mysql对group by 进行了非ANSI标准的扩展,允许select后含有非group by 的列。

    展开全文
  • 关于group by的用法 原理

    万次阅读 多人点赞 2018-06-14 00:26:30
    写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉group by好陌生,总有个筋别不过来,为什么不能够select * from Table group by id,为什么一定不能是*,而是某一个列或者某个列的聚合函数,group by ...

    写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉group by好陌生,总有个筋别不过来,为什么不能够select * from Table group by id,为什么一定不能是*,而是某一个列或者某个列的聚合函数,group by 多个字段可以怎么去很好的理解呢?不过最后还是转过来了,简单写写吧,大牛们直接略过吧。

    =========正文开始===========

      先来看下表1,表名为test:

     

    表1

      执行如下SQL语句:

    1
    2
    SELECT name FROM test
    GROUP BY name

      你应该很容易知道运行的结果,没错,就是下表2:

     

    表2

      可是为了能够更好的理解“group by”多个列“”聚合函数“的应用,我建议在思考的过程中,由表1到表2的过程中,增加一个虚构的中间表:虚拟表3。下面说说如何来思考上面SQL语句执行情况:

    1.FROM test:该句执行后,应该结果和表1一样,就是原来的表。

    2.FROM test Group BY name:该句执行后,我们想象生成了虚拟表3,如下所图所示,生成过程是这样的:group by name,那么找name那一列,具有相同name值的行,合并成一行,如对于name值为aa的,那么<1 aa 2>与<2 aa 3>两行合并成1行,所有的id值和number值写到一个单元格里面。

     

    3.接下来就要针对虚拟表3执行Select语句了:

    (1)如果执行select *的话,那么返回的结果应该是虚拟表3,可是id和number中有的单元格里面的内容是多个值的,而关系数据库就是基于关系的,单元格中是不允许有多个值的,所以你看,执行select * 语句就报错了。

    (2)我们再看name列,每个单元格只有一个数据,所以我们select name的话,就没有问题了。为什么name列每个单元格只有一个值呢,因为我们就是用name列来group by的。

    (3)那么对于id和number里面的单元格有多个数据的情况怎么办呢?答案就是用聚合函数,聚合函数就用来输入多个数据,输出一个数据的。如cout(id),sum(number),而每个聚合函数的输入就是每一个多数据的单元格。

    (4)例如我们执行select name,sum(number) from test group by name,那么sum就对虚拟表3的number列的每个单元格进行sum操作,例如对name为aa的那一行的number列执行sum操作,即2+3,返回5,最后执行结果如下:

     (5)group by 多个字段该怎么理解呢:如group by name,number,我们可以把name和number 看成一个整体字段,以他们整体来进行分组的。如下图

    (6)接下来就可以配合select和聚合函数进行操作了。如执行select name,sum(id) from test group by name,number,结果如下图:

    至此,我已经对我自己对如此简单的问题有如此天马行空的想法所折服,洗洗睡觉。

    展开全文
  • Group by 分组详解

    千次阅读 2018-11-22 16:25:16
    先来看下表1,表名为test:   表1  执行如下SQL语句: 1 ... GROUP BY name ... 可是为了能够更好的理解“group by”多个列“和”聚合函数“的应用,我建议在思考的过程中,由表1到表2的过程中...

    先来看下表1,表名为test:

     

    表1

      执行如下SQL语句:

    1

    2

    SELECT name FROM test

    GROUP BY name

      你应该很容易知道运行的结果,没错,就是下表2:

     

    表2

      可是为了能够更好的理解“group by”多个列“”聚合函数“的应用,我建议在思考的过程中,由表1到表2的过程中,增加一个虚构的中间表:虚拟表3。下面说说如何来思考上面SQL语句执行情况:

    1.FROM test:该句执行后,应该结果和表1一样,就是原来的表。

    2.FROM test Group BY name:该句执行后,我们想象生成了虚拟表3,如下所图所示,生成过程是这样的:group by name,那么找name那一列,具有相同name值的行,合并成一行,如对于name值为aa的,那么<1 aa 2>与<2 aa 3>两行合并成1行,所有的id值和number值写到一个单元格里面。

     

    3.接下来就要针对虚拟表3执行Select语句了:

    (1)如果执行select *的话,那么返回的结果应该是虚拟表3,可是id和number中有的单元格里面的内容是多个值的,而关系数据库就是基于关系的,单元格中是不允许有多个值的,所以你看,执行select * 语句就报错了。

    (2)我们再看name列,每个单元格只有一个数据,所以我们select name的话,就没有问题了。为什么name列每个单元格只有一个值呢,因为我们就是用name列来group by的。

    (3)那么对于id和number里面的单元格有多个数据的情况怎么办呢?答案就是用聚合函数,聚合函数就用来输入多个数据,输出一个数据的。如cout(id),sum(number),而每个聚合函数的输入就是每一个多数据的单元格。

    (4)例如我们执行select name,sum(number) from test group by name,那么sum就对虚拟表3的number列的每个单元格进行sum操作,例如对name为aa的那一行的number列执行sum操作,即2+3,返回5,最后执行结果如下:

     (5)group by 多个字段该怎么理解呢:如group by name,number,我们可以把name和number 看成一个整体字段,以他们整体来进行分组的。如下图

    (6)接下来就可以配合select和聚合函数进行操作了。如执行select name,sum(id) from test group by name,number,结果如下图:

    (已失效)文章出处:理解group by和聚合函数

    注意:mysql对group by 进行了非ANSI标准的扩展,允许select后含有非group by 的列。

    展开全文
  • SQL中的Group by学习

    2020-10-26 16:53:51
    面试了两家公司 都问到了SQL中的group by。说明这个比较常用也比较基础。 我第一次不知道 第二次我大概讲了自己的理解。我觉得需要学习一下。 1.group by的含义以及用法 2.Sql其他的语句,包括工作中用不到的。 ...
  • python中re.group()简介

    千次阅读 2019-05-21 16:12:50
    正则表达式中,group()用来提出分组截获的字符串,()用来分组 import re a = "123abc456" print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体 print re.search("([0-9]*)([a-z]*)(...
  • GROUP BY与COUNT用法详解

    万次阅读 多人点赞 2016-06-12 15:44:00
    聚合函数 在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECT SUM...
  • python正则表达式中group

    千次阅读 2017-08-15 16:24:18
    (一)正则表达式中的(…)  用于匹配括号内的任何正则表达式,并且指明组的开始和结束位置;...  以上便是Python3.6官方文档对于(…)表达式的解说,该括号表达式用于定义一个group,一个正则表达式中可以有多个括号
  • error: Found option without preceding group in config file: D:\Program Files\mysql-5.6.25-winx64\my.ini at line: 1 Fatal error in defaults handling. Program aborted 问题解决方式 1.将mysql.ini文件内容...
  • oracle的 listagg() WITHIN GROUP () 行转列函数的使用

    万次阅读 多人点赞 2019-11-30 10:19:21
    如需转载请标明出处 1.使用条件查询 查询部门为20的员工列表 -- 查询部门为20的员工列表 SELECT t.DEPTNO,t.ENAME ...2.使用 listagg() WITHIN GROUP () 将多行合并成一行(比较常用) SELECT T .DEPTNO, li...
  • pandas之分组groupby()的使用整理与总结

    万次阅读 多人点赞 2019-07-27 18:41:53
    在使用pandas的时候,有些场景需要对数据内部进行分组处理,如一组全校学生成绩的数据,我们想通过班级进行分组,或者再对班级分组后的性别进行分组来进行分析,这时通过pandas下的groupby()函数就可以解决。...
  • Spring data mongodb 聚合查询(aggregation) 之 group

    万次阅读 热门讨论 2019-03-12 16:51:01
    插入数据: mongoTemplate.save(new Role("zhang1",5)); mongoTemplate.save(new Role("zhang2",6)); mongoTemplate.save(new Role("zhang3",12));...zhang4...
  • groupby函数详解

    万次阅读 多人点赞 2020-05-11 19:00:46
    pandas中groupby函数用法详解1 groupby()核心用法2 groupby()语法格式3 groupby()参数说明4 groupby()典型范例 1 groupby()核心用法 (1)根据DataFrame本身的某一列或多列内容进行分组聚合,(a)若按某一列聚合...
  • LINQ,EF联合查询join GroupBy分组

    万次阅读 2020-05-23 08:06:14
    public object GetListAdmin() { //return db_C56.Admins // .Where(a => a.Status != "D").ToList(); var query1 = db_C56.Admins.Join(db_C56.Area, a => a.AreaI
  • MySQL查询优化:GROUP BY

    万次阅读 多人点赞 2019-03-13 23:12:25
    一、group by group by 优化方法 — 索引 松散索引扫描(Loose Index Scan) 为什么松散索引扫描的效率会很高? 紧凑索引扫描(Tight Index Scan) group by 优化方法 — 直接排序 二、group by 与 distinct ...
  • group by详解

    万次阅读 多人点赞 2018-09-16 22:06:51
    group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。 二. 语法 select 字段 from 表名 where 条件 group by 字段 或者 select 字段 from 表名 group by 字段 having 过滤条件 ...
  • Python中的groupby分组

    万次阅读 多人点赞 2018-06-05 21:02:03
    写在前面:之前我对于groupby一直都小看了,而且感觉理解得不彻底,虽然在另外一篇文章中也提到groupby的用法,但是这篇文章想着重地分析一下,并能从自己的角度分析一下groupby这个好东西~ OUTLINE 根据表...
  • group by 和 order by 的区别 + 理解过程

    万次阅读 多人点赞 2018-07-25 12:04:16
    order by 和 group by 的区别 order by 和 group by 的区别: 1,order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。 2,group by 从...
  • groupby,聚合,分组级运算,python 数据分析
  • mysql group by 组内排序方法

    万次阅读 多人点赞 2017-05-17 22:30:55
    mysql的group by语法可以根据指定的规则对数据进行分组,分组就是将一个数据集划分成若干个小区域,然后再针对若干个小区域进行数据处理。本文将介绍mysql使用group by分组时,实现组内排序的方法。
1 2 3 4 5 ... 20
收藏数 1,554,245
精华内容 621,698
关键字:

group