聚合函数

mysql数据库的高级操作方法

社会主义新天地 提交于 2019-12-05 04:24:37
一.模糊查询 使用like关键字进行模糊查询 语法:where 字段 like '含有通配符的值' 通配符:"_"该通配符表示匹配一个任意字符 通配符"%"该通配符表示是匹配0到任意个任意字符; 注意:在某些数据库中还支持"[可选字符]"的表示法法 二.使用聚合函数和分组查询 1,聚合函数和分组查询用于"统计查询" 2.常用的聚合函数 sum(字段); ---------------求该列的和 avg(字段)------------------求该列的平均值 count(字段|*|1)-----------获取总行数 max(字段)---------------获取该列最大值 min(字段)--------------获取该列最小值 3分组查询 语法: select * from 表名 group by 字段 [having 子句] //根据字段进行分组 注意:1.使用分组语句后,查询的列需要出现在分组子句中或者在聚合函数中 2.having子句是针对分组后的结果进行筛选的 3where与having的区别 where 子句是对表中的数据进行筛选 having是对分组后的结果进行筛选,且可以出现聚合函数 三,子查询 在一个查询语句中还有一个查询语句,就是子查询. 子查询需要用小括号括起来 子查询相当于获得了一个确定的值(在使用where 字段1 in(select 字段2from

改进一条Group By

纵饮孤独 提交于 2019-12-05 02:33:44
1.先回顾下基础知识: Group By 对数据分组聚合,常常伴随having使用。having可以处理单记录,也可以小组为单位处理。 语句: SELECT col FROM table [WHERE] [GROUP BY] [HAVING] [ORDER BY [ASC]|[DESC]] 1.FROM子句生成数据集 2.WHERE子句过滤1生成的数据集 3.GROUP BY子句聚合2生成的数据集 4.HAVING子句过滤3生成的数据集 5.SELECT子句在4的结果上做些转换 6.ORDER BY子句对5变换后的数据集进行排序 在SELECT子句但不在GROUP BY子句中的字段必须使用聚合函数。 聚合函数是对一组值执行计算并返回单个值得确定性函数,如COUNT,SUM,AVG,MIN,MAX,VAR_POP,VAR_SAMP等。 2.正文: 从SQL-92标准开始,强制规定了GROUP BY子句的使用,主流厂家也多数已经遵守,即:SELECT的字段,要么在GROUP BY中已经列出,要么使用了聚合函数。 如:有user表,order表,想看每个用户的消费情况,即按userid查询order分组数据,我们真正想要的是: SELECT u.userid,u.username,u.city,SUM(o.OrderTatal) AS total FROM user u LEFT

Graph-GraphSage

末鹿安然 提交于 2019-12-04 16:10:02
MPNN很好地概括了空域卷积的过程,但定义在这个框架下的所有模型都有一个共同的缺陷: 1. 卷积操作针对的对象是 整张图 ,也就意味着要将所有结点放入内存/显存中,才能进行卷积操作。但对实际场景中的大规模图而言,整个图上的卷积操作并不现实。 GraphSage [2]提出的动机之一就是解决这个问题。从该方法的名字我们也能看出,区别于传统的全图卷积, GraphSage 利用 采样 (Sample)部分结点的方式进行学习。当然,即使不需要整张图同时卷积,GraphSage仍然需要聚合邻居结点的信息,即论文中定义的 aggregate 的操作。这种操作类似于MPNN中的 消息传递 过程。 2. 之前的方法是固有的直推式得到node embeddeding,不能泛化,无法有效适应动态图中新增节点的特性, 往往需要从头训练或至少局部重训练。 3 缺乏权值共享(Deepwalk, LINE, node2vec)。节点的embedding直接是一个N*d的矩阵, 互相之间没有共享学习参数。 4.输入维度固定为|V|。无论是基于skip-gram的浅层模型还是基于autoencoder的深层模型,输入的维度都是点集的大小。训练过程依赖点集信息的固定网络结构限制了模型泛化到动态图的能力,无法为新加入节点生成embedding。 GraphSage 的模型

oracle sum()聚合函数

随声附和 提交于 2019-12-04 04:46:37
原文链接:https://blog.csdn.net/cizatu5130/article/details/100291347 oracle sum()聚合函数 2016-05-13 20:08:00 cizatu5130 阅读数 8 Oracle 的sum聚合函数的功能就是求和(这里暂时不讨论分析函数用法),一般用法不多讲,有个用法比较令人疑惑,曾经也踩过它的坑。示例如下: declare cursor t_cur is select * from emp where empno = 7934 ; v_count number; begin for tm_cur in t_cur loop select sum(tm_cur.sal) into v_count from dept; end loop; dbms_output.put_line(v_count); end; 这里的sum 求和的不是dept里面的字段,而是select 以外的其他值,刚开始看,还真一下子转不过来。再仔细想想,其实很简单,如下: SQL> select 1 from dept ; 1 ---------- 1 1 1 1 SQL> select sum(1) from dept; SUM(1) ---------- 4 所以select sum(tm_cur.sal) into v_count

postgresql 聚合函数 的编写

旧街凉风 提交于 2019-12-04 02:25:59
PostgreSQL功能很强大,支持事务,嵌套SQL,触发器,聚合等等几乎所有的商业数据库的功能,不得不佩服他还免费,我个人觉得MySQL不如它。别人老说PostggreSQL慢,其实维护得好,SQL写得合理,性能和MySQL有过之而无不及。 言归正传,我前段时间用PostgreSQL来做一个功能,就是想把某个表里面的某个字符型字段的值用逗号隔开“汇总”起来。实现这个功能可以在编程层次上把所有的行列出来,然后拼凑起来,这样的方法是傻子才用,数据量一大性能就不用说了。 我想应该有类似postgres的内嵌函数sum的函数,只是这次sum是汇总字符串而已。于是发现有个聚合函数可以自编的,看了一下Help,很简单。 于是先创建一个函数: CREATE OR REPLACE FUNCTION concat(text, text) RETURNS text AS $BODY$ DECLARE t text; BEGIN IF character_length($1) > 0 THEN t = $1 ', ' $2; ELSE t = $2; END IF; RETURN t; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION concat(text, text) OWNER TO postgres; GRANT EXECUTE

SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

隐身守侯 提交于 2019-12-03 21:10:02
SQL语句汇总(三)——聚合函数、分组、子查询及组合查询 拖了一个星期,终于开始写第三篇了。走起! 聚合函数: SQL中提供的聚合函数可以用来统计、求和、求最值等等。 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计算列的最小值 首先,创建数据表如下: 执行列、行计数(count): 标准格式 SELECT COUNT(<计数规范>) FROM <表名> 其中,计数规范包括: - * :计数所有选择的行,包括NULL值; - ALL 列名:计数指定列的所有非空值行,如果不写,默认为ALL; - DISTINCT 列名:计数指定列的唯一非空值行。 例,计算班里共有多少学生: SELECT COUNT(*) FROM t_student; 也可加入筛选条件,如求女学生数目: SELECT COUNT(*) FROM t_student WHERE student_sex='女'; 如果要计算班级数目,就需要用到DISTINCT: SELECT COUNT(DISTINCT student_class) FROM t_student; DISTINCT即去重,如果不加DISTINCT则结果为表行数——5。 返回列合计值(SUM): 注:sum只要ALL与DISTINCT两种计数规范,无*。

三十二:数据库之SQLAlchemy.query函数可查询的数据和聚合函数

拟墨画扇 提交于 2019-12-03 20:52:09
准备工作 from sqlalchemy import create_engine, Column, Integer, String, Floatfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmaker# 数据库信息host = '127.0.0.1'port = '3306'database = 'db_to_sqlalchemy'username = 'root'password = '123456'# 数据库类型+连接数据库的插件,这里使用的pymysqlDB_URI = f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}'engine = create_engine(DB_URI) # 创建引擎Base = declarative_base(engine) # 使用declarative_base创建基类session = sessionmaker(engine)()class Article(Base): __tablename__ = 'article' id = Column(Integer, primary_key=True, autoincrement

MySQL高级-02

易管家 提交于 2019-12-03 10:18:02
MySQL高级 SQL查询总结 3、select ...聚合函数 from 表名 1、where ... 2、group by ... 4、having ... 5、order by ... 6、limit ...; 聚合函数(铁三角之一) avg(…) sum(…) max(…) min(…) count(字段名) # 空值NULL不会被统计 group by(铁三角之二) 给查询结果进行分组 如果select之后的字段名和group by之后的字段不一致,则必须对该字段进行聚合处理(聚合函数) having语句(铁三角之三) 对查询的结果进行进一步筛选 注意 1、having语句通常和group by语句联合使用,过滤由group by语句返回的记录集 2、where只能操作表中实际存在字段,having可操作由聚合函数生成的显示列 distinct select distinct 字段1,字段2 from 表名; 查询时做数学运算 select 字段1 2,字段2 3 from 表名; 索引(BTree) 优点 :加快数据检索速度 缺点 :占用物理存储空间,需动态维护,占用系统资源 SQL命令运行时间监测 1、开启 :mysql> set profiling=1; 2、查看 :mysql> show profiles; 3、关闭 :mysql> set profiling=0

mysql - 分组函数

此生再无相见时 提交于 2019-12-03 09:36:21
分组函数,又称聚合函数,是将一类数据统计后获得一个值 1. 计算: sum 求和 avg 平均值 max 最大值 min 最小值 count 个数 不管什么引擎下,count(*)效率最高 以上函数忽略null值 2.distinct 去重 sum(distinct id) 先去重,再求和。 来源: https://www.cnblogs.com/clamp7724/p/11785659.html

mysql课外积累

白昼怎懂夜的黑 提交于 2019-12-03 02:41:47
where 与 on 的区别 : ON:针对关联表进行条件筛选,不会影响结果集的数量和主表数据。 WHERE:针对结果集进行条件筛选,会影响结果集的数量。 LIKE声明中的%和_是什么意思? --%对应于0个或更多字符,_只是LIKE语句中的一个字符。 blod text BLOB是一个二进制对象,可以容纳可变数量的数据。TEXT是一个不区分大小写的BLOB。 BLOB和TEXT类型之间的唯一区别在于对BLOB值进行排序和比较时区分大小写,对TEXT值不区分大小写。 mysql_fetch_array和mysql_fetch_object的区别: mysql_fetch_array() – 将结果行作为关联数组或来自数据库的常规数组返回。 mysql_fetch_object – 从数据库返回结果行作为对象。 ibd : 数据 + 索引 每个MyISAM表格以三种格式存储在磁盘上: ·“.frm”文件存储表定义 ·数据文件具有“.MYD”(MYData)扩展名 索引文件具有“.MYI”(MYIndex)扩展名 NOW()命令用于显示当前年份,月份,日期,小时,分钟和秒。 CURRENT_DATE()仅显示当前年份,月份和日期。 sql 优化 : explain出来的各种item的意义; select_type 表示查询中每个select子句的类型 type