聚合函数

聚合函数

社会主义新天地 提交于 2020-02-17 14:16:26
聚合函数 分页 约束 来源: CSDN 作者: beidaol 链接: https://blog.csdn.net/beidaol/article/details/104354624

分组拼接字符串,GROUP_CONCAT

不羁岁月 提交于 2020-02-15 11:16:34
背景 一年过的很快,文中后来的两位员工 馮大 和 馮二 也要面对无情的 KPI 考核了,他们工作干的很不错,performance 分别是 4 和 5 新需求来了,静悄悄的来了!!! 领导想要查看每个 performance 下都有谁,同时要求将这些人的名称要逗号拼接成一个字符串,也就是说要得到下面的结果: 要将结果集中某个指定的列进行字符串拼接,这要怎么做呢?主角闪亮✨登场 GROUP_CONCAT(expr) 在 Mysql 官方文档 中,该函数被放在聚合函数章节,如果你要按照指定字段分组拼接,就要配合关键字 GROUP BY 来使用的 定义 该函数返回一个字符串结果,该字符串结果是通过分组串联的非NULL值。如果没有非NULL值,则返回NULL。完整语法如下: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) What? 这个语法看着太复杂了吧,别着急,下面会用例子慢慢说明逐一验证滴 使用案例 先完成文章开头的需求: SELECT performance, GROUP_CONCAT(employee_name) AS employees FROM

MySQL 查询语句

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-15 02:27:55
排序查询 通过 ORDER BY 子句,可以将查询出的结果进行排序 ( 排序只是显示方式,不会影响数据库中数据的顺序 ) ASC: 升序,默认值 DESC: 降序 单列排序 只按某一个字段进行排序,单列排序。 SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC]; 如: -- 查询所有数据,使用年龄降序排序 select * from student order by age desc; 组合排序 同时对多个字段进行排序,如果第 1 个字段相等,则按第 2 个字段排序,依次类推。 SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC]; 如: -- 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序 select * from student order by age desc, math asc; 聚合函数 平常我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询, 它是对一列的值进行计算,然后返回一个结果值。 聚合函数会忽略空值 NULL 。 五个聚合函数 SQL 中的聚合函数 作用 max( 列名 ) 求这一列的最大值 min( 列名 ) 求这一列的最小值 avg( 列名 )

MySQL基础总结

眉间皱痕 提交于 2020-02-14 00:07:11
SQL功能划分 DDL:数据定义语言,用来操作database、table、column等,比如: create 、 alter 、 drop DML:数据操作语言,关键字: insert 、 update 、 delete DQL:数据查询语言, select (面试和工作都是最重要的) DCL:数据库控制语言,管理数据库用户,权限等,关键字: revoke 、 grant MySQL服务管理 启动 net start mysql 关闭 net stop mysql 登录 mysql -u username -p password [-hMySQL的ip地址 -PMySQL的端口] 操作数据库 创建数据库 create database databaseName; 查看数据库 show database; -- 查看创建数据库的详细信息 show create database databaseName; 切换数据库 use database; -- 查看在哪个数据库里 select database(); 删除数据库 drop database databaseName; MySQL常用数据类型 MySQL 说明 对应Java数据类型 int 整型 int/Integer varchar 可变长度的字符串 String date 日期类型 java.sql.Date

spark的udf和udaf的注册

萝らか妹 提交于 2020-02-12 21:41:17
spark的udf和udaf的注册 一、udf spark.udf.register("addName", (x: String) => { "name: " + x }) 二、udaf 弱类型的自定义聚合函数 是不安全的 package com.huawei.appgallery.udf import org.apache.spark.sql.Row import org.apache.spark.sql.expressions.{MutableAggregationBuffer, UserDefinedAggregateFunction} import org.apache.spark.sql.types._ /** * author:Chen * 弱类型自定义聚合函数 * date:2020/2/12 14:29 */ object MyAverage extends UserDefinedAggregateFunction { //聚合后的输入数据类型 override def inputSchema: StructType = { StructType(StructField("name", StringType, nullable = true) :: StructField("salary", LongType, nullable = false) :: Nil) }

4.2.7. Aggregate Expressions

浪子不回头ぞ 提交于 2020-02-12 12:28:54
4.2.7. Aggregate Expressions 4.2.7.聚合表达式 An aggregate expression represents the application of an aggregate function across the rows selected by a query. An aggregate function reduces multiple inputs to a single output value, such as the sum or average of the inputs. The syntax of an aggregate expression is one of the following: 聚合表达式表示在查询选择的行上应用聚合函数。 聚合函数将多个输入缩减为单个输出值,例如输入的总和或平均值。 聚合表达式的语法: aggregate_name (expression [ , ... ] [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ] aggregate_name (ALL expression [ , ... ] [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ] aggregate

数据库之应用理论

爱⌒轻易说出口 提交于 2020-02-12 03:54:02
一、聚合函数 count:统计行数量 sum:获取单个列的合计值 avg:计算某个列的平均值 max:计算列的最大值 min:计算列的最小值 二、having和where区别   二者都是过滤条件,where运行在分组之前,因此不能执行任何聚合函数,having是运行在分组后,只能用作聚合函数的过滤。 三、为什么要保证数据库完整性   为了防止垃圾数据的产生,从而影响数据库的执行效率 四、SQL语句执行顺序 1.执行from 2.where条件过滤 3.group by 分组 4.select 投影列 5.having条件过滤 6.执行order by顺序 五、外键与外键约束   外键是指从表的某列与主表的某列存在依附关系。外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。没有外键约束不等于没有外键。   添加外键约束的语句:Alter table 从表 add constraint 外键名 foreign key(外键) reference 主表名(主键) 六、JDBC(Java Database Connection)   是java连接数据库的一套规范,该规范中定义了一系列接口,这些接口由数据库厂商根据自身数据库 的特点提供实现类,由用户根据接口调用实现类相关的方法。这样用户可以屏蔽不同数据库的差异,无论连接什么数据库都是一套API 七

hive里面select count(*)始终为0,select * 有数据

坚强是说给别人听的谎言 提交于 2020-02-04 14:21:07
如题,在使用hive的时候,使用聚合函数select count(*) 的时候,不走MR程序,直接返回0,而select * 是有数据的: 原因是我的数据是直接通过put命令上传到指定目录的,并没用load进行上传,使用hdfs查看文件: 俩个文件的权限是不一样的,暂时没有好的办法解决,我的办法是删除原来的数据,老老实实使用load命令进行加载数据就可以了。 来源: CSDN 作者: thetimelyrain 链接: https://blog.csdn.net/thetimelyrain/article/details/104167383

75.ORM聚合函数详解:Sum

依然范特西╮ 提交于 2020-02-04 12:37:33
Sum:某个字段的总和。 1. 求图书的销售总额,示例代码如下: from django . http import HttpResponse from django . db import connections from . models import BookOrder , Book from django . db . models import Sum def index ( request ) : # 1.求图书的销售总额 sum = BookOrder . objects . aggregate ( sum = Sum ( 'price' ) ) print ( sum ) # {'sum': 622.0} print ( connection . queries ) # [{'sql': 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED', 'time': '0.000'}, # {'sql': 'SELECT SUM(`book_order`.`price`) AS `sum` FROM `book_order`', 'time': '0.000'}] return HttpResponse ( "success !" ) 其中,models.py文件中的模型定义为: from django . db

72.Python中ORM聚合函数详解:Avg,aggregate,annotate

て烟熏妆下的殇ゞ 提交于 2020-02-03 22:34:59
聚合函数: 如果你用原生SQL语句,则可以使用聚合函数提取数据。比如提取某个商品销售的数量,那么就可以使用Count,如果想要知道销售的平均价格,那么就可以使用Avg。 聚合函数是通过aggregate方法来实现的,在讲解这些聚合函数的用法的时候,都是基于以下的模型来实现的。 示例代码如下: '''python #模型要放在app当中。所以首先要在终端命令行窗口,执行命令: python manage.py startapp front 同时要将新创建的app添加到settings.py文件中的INSTALLED_APPS变量中。 同时要配置完全pycharm和数据库的连接信息。 settings.py文件中示例代码如下: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'orm_aggregate_demo', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } } models.py文件中示例代码如下: from django.db import models # 定义作者的模型 class Author(models.Model): <!-- 指定unique=True