聚合函数

pandas分组聚合基本操作

感情迁移 提交于 2019-11-27 10:12:55
import pandas as pd import numpy as np df = pd.DataFrame({'a':['one','two','one','two'], 'b':['key1', 'key1','key2','key2'], 'c':[2,3,4,5], 'd':[2,1,2,3], 'e':[3,3,4,4]}) df 1 2 3 4 5 6 7 8 9 # 对a进行分组,使用mean聚合函数,方法1 df.groupby('a').agg(['mean']) 1 2 # 对a进行分组,使用mean聚合函数,方法2 df[['c','d','e']].groupby(df['a']).agg(['mean']) 1 2 # 对a,b进行分组,使用mean,sum聚合函数(http://www.my516.com) df.groupby(['a','b']).agg(['mean','sum']) 1 2 --------------------- 来源: https://www.cnblogs.com/hyhy904/p/11357288.html

pandas分组聚合基本操作

那年仲夏 提交于 2019-11-27 09:52:52
import pandas as pd import numpy as np df = pd.DataFrame({'a':['one','two','one','two'], 'b':['key1', 'key1','key2','key2'], 'c':[2,3,4,5], 'd':[2,1,2,3], 'e':[3,3,4,4]}) df 1 2 3 4 5 6 7 8 9 # 对a进行分组,使用mean聚合函数,方法1 df.groupby('a').agg(['mean']) 1 2 # 对a进行分组,使用mean聚合函数,方法2 df[['c','d','e']].groupby(df['a']).agg(['mean']) 1 2 # 对a,b进行分组,使用mean,sum聚合函数(http://www.my516.com) df.groupby(['a','b']).agg(['mean','sum']) 1 2 --------------------- 来源: https://www.cnblogs.com/hyhy904/p/11357288.html

Spark 系列(十一)—— Spark SQL 聚合函数 Aggregations

落花浮王杯 提交于 2019-11-27 07:07:46
一、简单聚合 1.1 数据准备 // 需要导入 spark sql 内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSession.builder().appName("aggregations").master("local[2]").getOrCreate() val empDF = spark.read.json("/usr/file/json/emp.json") // 注册为临时视图,用于后面演示 SQL 查询 empDF.createOrReplaceTempView("emp") empDF.show() 注:emp.json 可以从本仓库的 resources 目录下载。 1.2 count // 计算员工人数 empDF.select(count("ename")).show() 1.3 countDistinct // 计算姓名不重复的员工人数 empDF.select(countDistinct("deptno")).show() 1.4 approx_count_distinct 通常在使用大型数据集时,你可能关注的只是近似值而不是准确值,这时可以使用 approx_count_distinct 函数,并可以使用第二个参数指定最大允许误差。 empDF.select(approx

Oracle学习(十一)聚合函数

拟墨画扇 提交于 2019-11-27 05:53:43
AVG() 求平均数 --查询某列的平均值 SELECT AVG(列) FROM 表 COUNT() 查询条数 -- 查询所有记录的条数 select count(*) from 表; -- 查询对应列的值不为空的记录的条数 select count(列) from 表; -- 查询对应列不重复的记录条数 select count(distinct 列) from 表; FIRST() 查询第一条 --oracle中first()函数的表达方式 SELECT 列 FROM 表 ORDER BY 列 ASC WHERE ROWNUM <= 1; LAST() 查询最后一条 --oracle中last()函数的表达方式 SELECT column_name FROM table_name ORDER BY column_name DESC WHERE ROWNUM <= 1; MAX() 最大值 MIN() 最小值 --指定列的最大值 SELECT MAX(列) FROM 表; --指定列的最小值 SELECT MIN(列) FROM 表; SUM() 统计指定列的值 --统计指定列的总数 SELECT SUM(列) FROM 表; GROUP BY() 分组(通常做统计时结合聚合函数用) --分组统计 SELECT 聚合函数(列) FROM 表 GROUP BY 列; HAVING

MySQL中where与having区别

丶灬走出姿态 提交于 2019-11-27 04:54:47
其实功能上WHERE和HAVING并无区别,都是做查询过滤。但是效率以及执行顺序并不一样。一般来说,where跟在from后,having跟在group by后,但 不要错误的认为having和group by必须配合使用 。 从整体声明的角度来理解: “Where”是一个 约束声明 ,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且 where 后面不能使用“聚合函数” ; “Having”是一个 过滤声明 ,所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且 having 后面可以使用“聚合函数” 。 从使用的角度来理解: where 后面之所以不能使用聚合函数 是因为where的 执行顺序 在聚合函数之前。 having既然是对查出来的结果进行过滤,那么就 不能对没有查出来的值使用having 。 从作用主体来理解 where是针对数据库文件发挥作用,而having是针对结果集发挥作用: where后面要跟的是数据表里的字段,where针对 数据库文件(比如表) 发挥作用。 而having只是根据前面查询出来的结果集再次进行查询,因此having是针对 结果集 发挥作用。 借鉴: https://www.jianshu.com/p/e23fb6704166 来源: CSDN 作者: 新6旸 链接: https:/

聚合函数 -AVG/MAX/MIN/STDDEV/VARIANCE/SUM/COUNT/MEDIAN

我是研究僧i 提交于 2019-11-27 02:30:42
------------------------------------------聚合函数--------------------------------------------- --1: AVG(DISTINCT|ALL) ALL表示对所有的值求平均值,DISTINCT只对不同的值求平均值 SELECT AVG(SAL) FROM SCOTT.EMP; SELECT AVG(DISTINCT SAL) FROM SCOTT.EMP; --2: MAX(DISTINCT|ALL) 求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次 (加不加查询结果一致,不知DISTINCT有什么用途,不同于AVG等聚合函数) SELECT MAX(DISTINCT SAL) FROM SCOTT.EMP; SELECT MAX(SAL) FROM SCOTT.EMP --3: MIN(DISTINCT|ALL) 求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次 SELECT MIN(SAL) FROM SCOTT.EMP; SELECT MIN(DISTINCT SAL) FROM SCOTT.EMP; --4: STDDEV(distinct|all) 求标准差,ALL表示对所有的值求标准差

Oracle连乘聚合函数 MUL

♀尐吖头ヾ 提交于 2019-11-27 00:17:33
Oracle提供了求和(SUM),平均值(AVG)等聚合函数,但没有提供连乘的聚合函数。 比如有一个表如下: ID NUM 1 4 2 2 3 2 如果要求NUM列的连乘数,即求: 4*2*2 ,目前Oracle中没有提供类似函数,但可以通过某种变换来求。 公式为: MUL(num) = EXP(SUM(LN(num))) 数学上推导如下: 设 x = 4 * 2 * 2 ln(x) = ln(4*2*2) => ln(4) + ln(2) + ln(2) => sum(ln(num) x = e (sum(ln(sum) x = exp(sum(ln(sum)) 有两个地方要注意: 1. ln的参数不能是负数,求值时要转换成正的。 2. 连乘的结果可能比较大,会超出范围。 参考: http://viralpatel.net/blogs/row-data-multiplication-in-oracle/ http://stackoverflow.com/questions/5416169/mutiplication-aggregate-operator-in-sql 完 转载于:https://www.cnblogs.com/jmax/p/3771772.html 来源: https://blog.csdn.net/weixin_30852419/article/details

sql强大的行转列功能(内置函数pivot及注意事项)

爱⌒轻易说出口 提交于 2019-11-26 23:07:14
语法: PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现 完整语法: table_source UNPIVOT( value_column FOR pivot_column IN(<column_list>) ) 注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别 在数据库属性->选项->兼容级别改为 90 if object_id('tb')is not null drop table tb go create table tb(姓名 varchar(10),课程 varchar(10),分数 int) insert into tb values('张三','语文',74) insert into tb values('张三','数学',83) insert into tb values('张三','物理',93)

hibernate SQL查询COUNT函数

与世无争的帅哥 提交于 2019-11-26 20:15:45
在Oracle11g中hibernate执行SQL语句使用COUNT聚合函数时,返回类型是BigDecimal 在MySQL5.5中COUNT聚合函数返回类型则是BigInteger 用其他类型数据接收hibernate则会报IllegalArgumentException异常 来源: https://www.cnblogs.com/MFlowers/p/11332453.html

mysql 聚合函数

只愿长相守 提交于 2019-11-26 16:38:05
GROUP BY(聚合)函数 本章论述了用于一组数值操作的 group (集合)函数。除非另作说明, group 函数会忽略 NULL 值。 假如你在一个不包含 GROUP BY子句的语句中使用一个 group函数 ,它相当于对所有行进行分组。 AVG([DISTINCT] expr) 返回expr 的平均值。 DISTINCT 选项可用于返回 expr的不同值的平均值。 若找不到匹配的行,则AVG()返回 NULL 。 mysql> SELECT student_name, AVG(test_score) -> FROM student -> GROUP BY student_name; BIT_AND(expr) 返回expr中所有比特的 bitwise AND 。计算执行的精确度为64比特(BIGINT) 。 若找不到匹配的行,则这个函数返回 18446744073709551615 。(这是无符号 BIGINT 值,所有比特被设置为 1)。 BIT_OR(expr) 返回expr 中所有比特的bitwise OR。计算执行的精确度为64比特(BIGINT) 。 若找不到匹配的行,则函数返回 0 。 BIT_XOR(expr) 返回expr 中所有比特的bitwise XOR。计算执行的精确度为64比特(BIGINT) 。 若找不到匹配的行,则函数返回 0 。 COUNT