首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

想学数据分析但不会Python,过来看看SQL吧(下)~

编辑:王老湿 知识清单 数据分组 创建分组(GROUP BY) 之前学到的筛选操作都是基于整个表去进行的,那如果想要依据某列中的不同类别(比如说不同品牌/不同性别等等)进行分类统计时,就要用到数据分组...过滤分组(HAVING) 在SQL入门中我们学过WHERE,它是对行数据进行筛选过滤的,那么,如果我想对创建的分组数据进行筛选过滤呢?...⚠️UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。而且UNION返回的结果只会选取列中不同的值(即唯一值)。...: SELECT AVG(col_1) AS avg_col_1 FROM table_1; ⚠️聚合函数都会忽略列中的NULL值,但是COUNT(*)也就是统计全部数据的行数时,不会忽略NULL值。...(其实这里可以直接无视,筛选出来后在python中再进行处理) SQL中提供了一个替换NULL值的函数COALESCE。

3.1K30

MySql笔记

Null|not null:是否可以为空 Default:是否有默认值 Auto_increment:是否可以自动增长,必须是数字,如:需要给每条数据一个编号,原因是数据内容可以重复,编号不能重复。...Primary key:设置主键,数据内容不能重复,在查询数据主查询条件,一个表中一个主键,一般都是id。 unique [key]:设定为唯一(键),即表中所有行的的数据在该字段中的值不能有重复。...分组查询 使用group by 对查询结果分组 如果对数据进行分组统计就需要使用group by group by将表按列值进行分组 列的值相同为一组 SELECT class_id, COUNT(...dml语句组成该组dml语句要么全部成功执行,要么全部失败。...则提交 commit; //如果有一个出现问题 name回滚 rollback; 因为要保证数据的一致性 必须全部成功 有一个错误则回滚 存储过程的创建和调用 存储过程就是存储一段代码,用来完成特定的功能

63620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL之单表查询

    1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having...取每个部门的最高工资 取每个部门的员工数 取男人数和女人数 小窍门:‘每’这个字后面的字段,就是我们分组的依据 #4、大前提: 可以按照任意字段分组,但是分组完毕后,比如group...by post,只能查看post字段,如果想查看组内信息,需要借助于聚合函数 2 GROUP BY 单独使用GROUP BY关键字分组 SELECT post FROM employee GROUP...,并查看每个组有多少人 强调: 如果我们用unique的字段作为分组的依据,则每一条记录自成一组,这种分组没有意义 多条记录之间的某个字段值相同,该字段通常用来作为分组的依据 3 聚合函数 #强调:聚合函数聚合的是组的内容...= 'alex' # 'a|x' 匹配 条件中的任意值 select * from person where name REGEXP 'a|x';   #查询以w开头以i结尾的数据 select

    4.8K70

    SQL优化一(SQL使用技巧)

    ) 窗口就是分析函数分析时要处理的数据范围,就拿sum来说,它是sum窗口中的记录而不是整个分组中的记录,因此我们在想得到某个栏位的累计值时,我们需要把窗口指定到该分组中的第一行数据到当前行, 如果你指定该窗口从该分组中的第一行到最后一行...,那么该组中的每一个sum值都会一样,即整个组的总和。...这里如果开窗函数的统计结果为null或者为0,就是说占用比率的被除数为0或者为null, 则得到的结果也为0....组内的数据按ORDER BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加。每次ORDER BY表达式的值发生变化时,该序列也随之增加。...(默认为1) 第四个是标识第几个匹配组。(默认为1) 第五个是指定返回值的类型,如果该参数为0,则返回值为匹配位置的第一个字符,如果该值为非0则返回匹配值的最后一个位置。

    2.6K40

    MySQL单表查询的操作和注意事项

    1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having...注意 ONLY_FULL_GROUP_BY的语义就是确定select target list中的所有列的值都是明确语义,简单的说来,在ONLY_FULL_GROUP_BY模式下,target list中的值要么是来自于聚集函数的结果...,要么是来自于group by list中的表达式的值。...    select post,count(id) as count from employee group by post;#按照岗位分组,并查看每个组有多少人 强调: 如果我们用unique的字段作为分组的依据...,则每一条记录自成一组,这种分组没有意义 多条记录之间的某个字段值相同,该字段通常用来作为分组的依据 四 、聚合函数 #强调:聚合函数聚合的是组的内容,若是没有分组,则默认一组 示例: SELECT COUNT

    1.1K00

    知识点、SQL语句学习及详细总结

    1.2.5 对数据进行分组统计 需要先对数据进行分组,然后再对每个组进行统计。分组子句GROUP BY。在一个查询语句中,可以用多个列进行分组。...分组子句跟在WHERE子句的后面: GROUP BY 分组依据列>[,...n] [HAVING 组筛选条件>] 123 GROUP BY 分组依据列>[,...n]    [HAVING...1.3 多表连接查询 若一个查询同时涉及到两张或以上的表,则称为连接查询。 1.3.1 内连接 使用内连接时,如果两个表的相关字段满足条件,则从两个表中提取数据组成新的记录。...外连接:如果表A和表B进行左外连接,则结果为 记录集A + 记录集C;如果表A和表B进行右外连接,则结果为 记录集B + 记录集C。...,如果需要跟一个范围内的值进行比较,就需要搜索CASE函数。

    2K20

    玩转mysql函授:concat以及group_concat

    返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。...说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。 3、举例: 例3:我们使用concat_ws()将 分隔符指定为逗号,达到与例2相同的效果: ?...—— 使用group_concat() 1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。...;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。...例9:上面的查询中显示了以name分组的每组中所有的id。接下来我们要查询以name分组的所有组的id和score: ?

    2.2K20

    CTF杂谈之PHP魔法与CBC加密

    2.Strcmp()利用数组绕过 int strcmp ( string $str1 , string $str2 ) Strcmp()函数用于比较两个字符串,如果str1和str2相同,则返回值为0;...如果不同则返回值为正或者为负。...但PHP内置函数不太限制传入参数的类型,所以当输入的值不是字符串时,就会产生不预期的返回值。 例如,我们传入一个数组,就会返回NULL,绕过判断。 ?...在现实应用,例如HTTPS连接中,只在第一次握手时使用非对称加密,通过握手交换对称加密密钥,之后的通信用对称加密完成:服务端向客户端发送证书/公钥,客户端验证证书的有效性后,生成一个随机值,用该证书加密...实际上,IV是一个大小为n的移位寄存器S,对于一个明文分组,加密时通过异或一个将移位寄存器加密得到的密文的 r 比特,从而得到密文分组。

    1.8K60

    层次聚类与聚类树

    ⑵模糊划分,对象归属身份信息可以是连续的,也即身份信息可以是0到1中间的任意值。 聚类的结果可以输出为无层级分组,也可以是具有嵌套结构的层次聚类树。...⑵完全连接聚合聚类 完全连接聚合聚类(completelinkage agglomerative clustering)也称作最远邻分类(furthestneighbour sorting),依据最远距离决定一个对象或者一个组是否与另一个组聚合...単连接聚合聚类更容易体现数据的梯度,而完全连接聚合聚类分类组之间差异更加明显。在在hclust()函数中为"complete"。...一个对象加入一个组依据的是这个对象与这个组成员的平均距离。...⑷最小方差聚类 Ward最小方差聚类是一种基于最小二乘法线性模型准则的聚类方法。分组的依据是使组内距离平方和(方差)最小化,由于使用了距离的平方,常常使聚类树基部过于膨胀,可取平方根再进行可视化。

    1.5K30

    SQL简介

    ,则配合组函数也可写在select中 在group by中出现的单行函数,在select中可以出现,但必须保证单行函数必须完全相同 组函数不能放在where中 Having(重点) 作用:对于分组后结果进行过滤...sql执行顺序. sql执行顺序 select... from 表名 where 行数据的筛选条件 group by 分组依据 having by 分组数据的筛选条件 order by 排序依据 执行顺序...,但若学生学号 用1,2,3,4,5, primary key 唯一,表示该类内容不可重复,但可同时为空,unique 非空 该列必须要内容 not null 检查/自定义 条件筛选 check(表达式...只能修改函数的一些属性:谁可以执行这个函数等 sql语句可能不能修改 可以删除后函数重写 in 表示从外部传入一个数,函数中 可以使用它,但不能 更改他 out 表示从外部传入一个数,函数中能更改他,好像不能访问它...is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0 应尽量避免在 where 子句中使用!

    2.7K20

    pandas分组聚合转换

    分组的一般模式 分组操作在日常生活中使用极其广泛: 依据性别性别分组,统计全国人口寿命寿命的平均值平均值 依据季节季节分组,对每一个季节的温度温度进行组内标准化组内标准化 从上述的例子中不难看出,想要实现分组操作...同时从充分性的角度来说,如果明确了这三方面,就能确定一个分组操作,从而分组代码的一般模式: df.groupby(分组依据)[数据来源].使用操作 例如第一个例子中的代码就应该如下: df.groupby...,其传入值为数据源的序列其传入值为数据源的序列,与agg的传入类型是一致的,其最后的返回结果是行列索引与数据源一致的DataFrame。...分组之后, 如果走聚合, 每一组会对应一条记录, 当分组之后, 后续的处理不要影响数据的条目数, 把聚合值和每一条记录进行计算, 这时就可以使用分组转换(类似SQL的窗口函数) def my_zscore...组过滤作为行过滤的推广,指的是如果对一个组的全体所在行进行统计的结果返回True则会被保留,False则该组会被过滤,最后把所有未被过滤的组其对应的所在行拼接起来作为DataFrame返回。

    12010

    算法工程师-SQL进阶:强大的Case表达式

    ,它的主要原理是:依据不同的条件规则(可以是很复杂的逻辑),产生不同的值。...当sql执行group by时,会根据case设定的分支规则将每一行映射为一个值,映射完成后,在根据映射完的值的种类将每行进行归组;当执行select语句时,每个组的组名是什么呢?...=1的映射为0,第二个表达式相反。然后在每个case表达式外面套一个sum聚合函数,统计每个sex下的sum值。...*)作为case的第一级判断条件,如果count=1,则就选那一个俱乐部即可;如果有多个,怎么筛选flag='Y'的那个呢??...可以利用一个case表达式,将flag='Y'作为一个分支,如果符合了,保留,不符合的变为NULL,最后在该小组内max一下就得到非NULL的那行了。max等聚合函数具有过滤NULL的作用。

    2.3K20

    【数据挖掘】聚类 Cluster 简介 ( 概念 | 应用场景 | 质量 | 相似度 | 算法要求 | 数据矩阵 | 相似度矩阵 | 二模矩阵 | 单模矩阵 )

    ) ① 没有类标签 : 虽然将数据集分成若干子集 , 但是以什么依据分 , 事先是不知道的 ; ② 没有训练集 : 分类操作中 , 将数据集先分成训练集 和 测试集 , 但是在聚类中 , 只有一个数据集..., 聚类算法分析整个数据集 , 学习训练出以什么标准进行聚类 , 然后将相似的数据样本分组 , 这就是聚类结果 ; ③ 聚类分组 : 给定数据集 , 有完整的属性值 ; 相似的数据放在同一组 , 不相似的数据放在另外一组...聚类分析目的 : 聚类分析 希望根据数据的特征 , 可以是 1 个特征 , 也可以是若干特征 , 找出数据之间的相似性 , 相似的数据放在一个数据组中 , 这里不是分类 , 要注意区分分组与分类 ,...位置 , 等因素 , 对该数据集进行聚类分析 , 为数据集分组 , 便于城市规划 ; ③ 地理用途 : 将地球上不同地区的情况当做数据集 , 录入该地区的各种属性 , 聚类分析这些地区 , 并将其分组...高质量 聚类 要求 : ① 同一分组 : 相同分组中的数据样本 , 高度相似 ; ② 不同分组 : 不同分组中的数据样本 , 高度不相似 ; 3 .

    1.4K10

    SQL命令 DISTINCT

    它将每个不同(唯一)值返回的行数限制为一个任意行。如果未指定DISTINCT子句,则默认情况下显示满足选择条件的所有行。...DISTINCT从句有两种形式: SELECT DISTINCT:为选择项值的每个唯一组合返回一行。可以指定一个或多个选择项。...但是,如果将文字指定为逗号分隔列表中的项值,则该文字将被忽略,并且DISTINCT将为指定字段名的每个唯一组合选择一行。 DISTINCT子句在TOP子句之前应用。...如果DISTINCT子句中指定的列包含NULL(不包含值)行,则DISTINCT将返回一行作为DISTINCT(唯一)值的NULL,如以下示例所示: SELECT DISTINCT FavoriteColors...默认情况下,字符串数据类型字段使用SQLUPPER排序规则定义,该排序规则不区分大小写。 如果字段/特性排序规则类型为SQLUPPER,则分组的字段值将全部以大写字母返回。

    4.4K10

    MySQL表的增删改查(进阶)

    数据库约束 在MySQL中,约束用于定义表中数据的规则,保证数据的一致性、完整性和准确性。以下是常见的数据库约束类型: NULL约束 NOT NULL:指示某列不能存储NULL值。...(20) ); DEFAULT:默认值约束 DEFAULT:用于为列定义一个默认值,当插入数据时没有指定该列值时,使用默认值。...classes_id为子键,classes表中的id为父键 从而导致classes_ID 内部的值要出自 id内部,如果出现不属于id内的值就会报错。...注意select 指定的列必须是“分组依据列” (指定列中相同的行为一组),其他列若想出现在select 中则必须包含在聚合函数中,否则会出现错误 (假如一组中有3行,该组内部都为不同的值,那该组的列展示出来的就是其中的一个值...如果右表中没有匹配的记录,结果中的右表字段将为NULL。 SELECT 列1, 列2, ...

    6310

    会员权益核心引擎ZCube原理与实践

    如果CriteriaActivity的模式匹配为False:则结束当前Path的匹配,返回Null【回到上一节点】,否则为True时:将该节点的Pass置为True,同时继续遍历该节点的Paths【重复...(3)如果To为AndActivity,遍历该节点所有的FromPaths,如果有一个为False:则返回Null【回到上一节点】,否则:如果每一个FromPaths的Passed都为true:则将该节点的...然后,RHS执行:分组执行议程中的规则。 1. 议程中规则的分组逻辑 议程中存在3各组,分别是执行组、互斥组、默认组,且三个组的优先级为:执行组>互斥组>默认组。...模式匹配后,会将命中的规则放入议程中。存放逻辑为: 每个规则只能隶属于一个分组:执行组>互斥组>默认组。 进入某一分组的顺序是按规则的优先级属性由大到小存存入,如未设置优先级,则随机排序。..., 结构相似性:实际工作中,从业务逻辑抽象出来的规则,常常包含类似的模式和模式组。

    1.1K11

    MySQL单标查询

    limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行...,可能因为你们公司设置的mysql的环境不同,而查不到数据,我们可以看到,我们现在仍然可以查询出来数据,但是如果我们在sql_mode中添加了下面的only_full_group_by这个mode,那么我们在直接分组查询...强调: 如果我们用设置了unique约束的字段作为分组的依据,则每一条记录自成一组,这种分组没有意义 多条记录之间的某个字段值相同,该字段通常用来作为分组的依据 4、 聚合函数 #强调:聚合函数聚合的是组的内容...#这道题我们自己提炼一下分组依据,是不是就是性别啊#总结:先from打开文件,然后按照where后面的条件,将硬盘的数据读到内存,内存中的到一张虚拟表,然后按照虚拟表来进行group by分组。...没问题,但是你看年龄相同的那些按什么排的,是不是看着是乱的啊,但是不管它对这种相同数据的内容怎么排序,我们是不是想如果出现相同的数据,那么这些相同的数据也按照一个依据来排列啊: 所以我们可以给相同的这些数据指定一个排序的依据

    2.7K20

    SQL命令 GROUP BY

    GROUP BY将NULL(没有指定值)字段作为一个独立的值组。...但是,如果在逗号分隔的列表中指定一个字面值作为字段值,则该字面值将被忽略,并且GROUP BY将为指定字段名的每个惟一组合选择任意一行。...例如,如果任何Home_State被8个人共享,查询返回8。 如果查询仅由聚合函数组成且不返回表中的任何数据,则返回%ROWCOUNT=1,并为聚合函数返回一个空字符串(或0)值。...这样做的好处是返回的值是实际值,显示数据中至少一个值的字母大小写。 它的性能缺点是不能使用字段的索引。 可以通过对select-item字段应用%EXACT排序函数来为单个查询指定这个值。...带有GROUP BY子句的SELECT语句返回所做的所有数据修改,无论它们是否已提交。 示例 下面的示例按名称的首字母对名称进行分组。它返回首字母、共享该首字母的姓名计数以及一个Name值的示例。

    3.9K30

    AB试验(三)一次试验的规范流程

    ,使实验组和对照组尽可能相似,比如检测两组样本量的比例,以及检测两组中特征的分布是否相似 实验/对照组中样本大小的比例 实验/对照组中样本特征的分布 确定实验单位 三个维度 用户层面:把单个的用户作为最小单位...代入得 · ,实验组与对照组样本量一致,则总样本为1096 随机分组 实验分组的要求:在同一时间维度下,让组成成分相似的用户群参与到两组实验 定义:具体表现就是每个指标在AB两组中要均衡,一个好的办法是通过马氏距离来定义相似性...如果流量等分,则进入实验组的概率为0.5 · 根据二项分布的公式计算标准误差。然后以进入实验组的概率为中心构造置信区间 · 最后确认实际的实验组占总体样本比例是否在置信区间内,同理可计算对照组的。...· 举个例子:在一次等流量测试中,实验组样本是315256,对照组样本是315174。由于等流量分组,因此样本进入实验组的概率,则。则进入实验组的置信区间为。进入对照组也如此。...比如从操作系统维度,去看两组中iOS和Android的用户的比例是否存在偏差,如果是的话那说明原因和操作系统有关 如何分析A/B测试结果 p值法:当P值小于5%时,说明两组指标具有显著的不同。

    86711
    领券