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

常见SQL知识点总结,建议收藏!

SQL是用于数据分析和数据处理的最重要的编程语言之一, 因此与数据科学相关的工作(例如数据分析师、数据科学家和数据工程师)在面试时总会问到关于 SQL 的问题。...之后,等我指出他们解决方案中存在的问题后,他们只好反复修改查询。最后,他们在迭代中浪费了很多面试时间,甚至可能到最后都没有找到正确的解决方案。...如果在一个 SQL 问题中看到诸如求和、平均值、最小值或最大值之类的关键字,这就表明你可能应该在查询中使用GROUP BY了。...**LAG/LEAD:**它根据指定的顺序和分区组从前一行或后一行检索列值。 在SQL面试中,重要的是要了解排名函数之间的差异,并知道何时使用LAG/LEAD。.../LEAD窗口函数 如果在创建复杂的查询时遇到困难,请尝试遵循SQL执行顺序 考虑潜在的数据问题,例如重复和NULL值 与面试官交流你的思路

13510

数据库sql面试需要准备哪些?

SQL 是用于数据分析和数据处理的最重要的编程语言之一,因此与数据科学相关的工作(例如数据分析师、数据科学家和数据工程师)在面试时总会问到关于 SQL 的问题。...之后,等我指出他们解决方案中存在的问题后,他们只好反复修改查询。最后,他们在迭代中浪费了很多面试时间,甚至可能到最后都没有找到正确的解决方案。...如果在一个 SQL 问题中看到诸如求和、平均值、最小值或最大值之类的关键字,这就表明你可能应该在查询中使用 GROUP BY 了。...LAG / LEAD :它根据指定的顺序和分区组从前一行或后一行检索列值。 在 SQL 面试中,重要的是要了解排名函数之间的差异,并知道何时使用 LAG/LEAD。...总结 首先要提问,收集所需的细节。 在 INNER,LEFT 和 FULL JOIN 之间谨慎选择。 使用 GROUP BY 聚合数据并正确使用 WHERE 和 HAVING。

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

    MYSQL 8 在GR 与 MYSQL 5.7 多了 哪些东西 “浅薄”的说说

    (顺便说一句,增加时间的想法在 8.013 有相关的参数实现) 所以分布式数据库的信息的发送和接受,以及信息的处理利用,以及相互之间的信息如何协调是一个关键。...秒,也就是一个小时的时间。...,通过监控着两个值,就可以获得你的XCOM中使用的内存数,并判断当前的值适合你的服务器吗,并进行调整。...,最大是可以设置2016 次 Exit Action: 最后是group_replication_exit_state_action,这是一个决定你的节点被剔除后的状态,里面可以选择是关闭机器,或者进行系统的...super read only的设置 最后MYSQL 8 的GR ,如果想选择版本的话建议8.016以上,大部分参数都是在8.016这个版本进行完善的。

    1K20

    Redis命令详解:Streams

    如果key不存在,就创建一个新的stream。 entry由一系列field-value对组成,存储顺序由用户添加顺序决定。XADD命令是唯一一个向stream中添加数据的命令。...使用XGROUP命令你可以: 创建与一个stream相关联的消费者组 销毁一个消费者组 从消费者组中删除指定的消费者 设置消费者组的last delivered ID 创建新的消费者组的命令是: XGROUP...CREATE mystream consumer-group-name $ 最后一个参数是stream中已传递的最后一个ID,使用$表示这个消费者组只能获取到新的元素。...这个命令通常与XCLAIM一起使用,用于处理长时间未被处理的消息。...XREVRANGE 最早可用版本:5.0.0 时间复杂度:O(log(N)+M) ,N是返回的元素数量,M是一个常量。 此命令与XRANGE唯一的区别是顺序相反。

    2.2K10

    MySQL优化总结

    否,因为关联的还有data下的其它文件 记录存储顺序 按记录插入顺序保存 按主键大小有序插入 空间碎片(删除记录并flush table 表名之后,表文件大小不变) 产生。...而且操作代价很大 按数据存储结构分类: 1.聚簇索引 定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。...主键索引是聚簇索引,数据的存储顺序是和主键的顺序相同的 2.非聚簇索引 定义:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。...order by 最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现 file_sort 的情况,影响查询性能。 例如对于语句 where a=? and b=?...order by 最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现 file_sort(外部排序) 的情况,影响查询性能。 例如对于语句 where a=?

    1.7K40

    程序员零基础速成SQL

    上篇介绍SQL的语法顺序和执行顺序的区别并仔细剖析SQL的执行顺序;中篇详细介绍条件子句、分组查询和排序的细节;下篇会介绍表的连接和其他常用关键字。...成绩表 SQL的执行顺序与语法顺序 本篇文章关于SQL语法的部分会讲到条件子句(where子句)、分组查询(group by子句和having子句)、结果呈现(order by和limit)和连接查询...执行顺序 举个简单的例子加深理解:SQL的语法顺序就像小说的插叙,而SQL真正的执行顺序就是小说的时间顺序。...字段选择——select 在group by分组后紧跟着我们会选择需要呈现的字段,为了方便讲解,其实分组查询中呈现的图片已经是select的结果了。 4....查询结果 详细介绍各模块细节 之前我们已经用一个例子介绍了SQL的语法顺序和执行顺序,想必现在你已经知道了一个完整的SQL包括条件子句(关键字where)、分组查询(关键字group by)、字段选择

    1.5K10

    组复制背景 | 全方位认识 MySQL 8.0 Group Replication

    在早期版本中,要更改组的模式,必须先停止组复制并更改所有成员上的group_replication_single_primary_mode系统变量的值。...(调低权重值可以降低其排序顺序,调高权重值可以增加其排序顺序)。...该因素是最后一个可靠的决定因素,因为它可以在第一和第二因素不生效时,使所有的组成员达成最终一致的决策(按照相同的顺序排序UUID并选择最小值,所有组成员能够达成一致,因为组复制是从5.7版本引入的,且UUID...你只需要连接到组内的任意一个成员中,并通过performance_schema下的相关复制状态信息表执行select语句进行查询,就可以获取到组相关的本地和全局信息。...Recovery 组件管理数据库节点的分布式恢复相关的工作,以及负责在一个新的Server(joiner)加入集群时选择一个捐赠者(donor),协调joiner节点的数据追赶的更新步骤(包括相关的数据回追

    89130

    《Scikit-Learn与TensorFlow机器学习实用指南》 第02章 一个完整的机器学习项目(下)选择并训练模型模型微调启动、监控、维护系统实践!练习

    你需要让自制的转换量与Scikit-Learn组件(比如pipeline)无缝衔接工作,因为Scikit-Learn是依赖鸭子类型的(而不是继承),你所需要做的是创建一个类并执行三个方法:fit()(返回...当你调用pipeline的fit()方法,就会对所有转换量顺序调用fit_transform()方法,将每次调用的输出作为参数传递给下一个调用,一直到最后一个评估量,它只执行fit()方法。...在这个例子中,最后的评估量是一个StandardScaler,它是一个转换量,因此这个pipeline有一个transform()方法,可以顺序对数据做所有转换(它还有一个fit_transform方法可以使用...你在前面限定了问题、获得了数据、探索了数据、采样了一个测试集、写了自动化的转换pipeline来清理和为算法准备数据。现在,你已经准备好选择并训练一个机器学习模型了。...就像前一章看到的,修复欠拟合的主要方法是选择一个更强大的模型,给训练算法提供更好的特征,或去掉模型上的限制。这个模型还没有正则化,所以排除了最后一个选项。

    1.2K20

    每日一博 - 闲聊SQL Query Execution Order

    查询优化(Query Optimization):一旦查询通过了语法分析,MySQL会进行查询优化,这是查询执行的关键阶段。在这个阶段,MySQL会分析查询的各种执行计划,并选择最优的执行计划。...GROUP BY:GROUP BY子句用于将查询结果分组为若干组,通常与聚合函数一起使用,例如SUM、COUNT等。GROUP BY操作发生在执行计划生成阶段,并且它会影响结果集的结构。...它将数据分成多个组,并且对每个组应用聚合函数,以计算每个组的聚合值。这通常用于生成汇总统计信息。 HAVING:HAVING子句用于过滤使用GROUP BY分组后的结果集的组。...与WHERE不同,HAVING在分组后应用,用于筛选组的聚合值。只有满足HAVING条件的组将包含在最终结果中。这使得您可以在分组后进一步筛选结果。...ORDER BY:ORDER BY子句用于指定查询结果的排序顺序。它在查询执行的最后阶段起作用,一旦结果集生成,就按照指定的列或表达式对结果进行排序。

    26150

    MySQL 查询专题

    NULL 与不匹配 在通过过滤选择出不具有特定值的行时,你可能希望返回具有 NULL 值的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤时不返回它们。...❑ GROUP BY子句可以包含任意数目的列,因而可以对分组进行嵌套,更细致地进行数据分组。 ❑ 如果在 GROUP BY 子句中嵌套了分组,数据将在最后指定的分组上进行汇总。...❑ 如果分组列中包含具有 NULL 值的行,则 NULL 将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。...在指定一条 ORDER BY 子句时,应该保证它是SELECT语句中最后一条子句,否则这将报错 不限制是否使用非选择列进行排序 除了能用列名指出排序顺序外,ORDER BY 还支持按相对列位置进行排序,...例如,一个特殊词的搜索将会返回包含该词的所有行,而不区分包含单个匹配的行和包含多个匹配的行(按照可能是更好的匹配来排列它们)。类似,一个特殊词的搜索将不会找出不包含该词但包含其他相关词的行。

    5K30

    mysql小结(1) MYSQL索引特性小结

    顺序I/O有效减少寻道的次数 2.插入更新索引树时可以避免移动节点. 3.遍历任何节点的时间复杂度相同,即访问路径总是从根节点到叶子节点.相比B-树,访问时间略长.所以某些高频访问的搜索采用B-树,...,那么只能使用其中之一的索引,具体使用哪个索引,要看mysql的统计信息,mysql执行计划中包括索引的选择,具体的选择要看哪个的索引选择率更高【唯一值/总记录数=选择率,0选择率选择率越大...3.2 索引设计的几个“原则” 1.索引的设计应该与业务需求息息相关,没有完美的索引设计,只有满足需求的索引设计,项目前期设计的索引不可能完美的满足后期的需求。应随时根据业务合理取舍。...2.索引设计应该优先照顾查询最为频繁,或业务优先级高,与用户相关的查询。...ref_or_null:与ref的唯一区别就是在使用索引引用的查询之外再增加一个空值的查询。

    1.1K30

    首页 归档 分类 标签 作者 kafka原理总结

    , 则按照 key 的 hash 值与 topic 的 partition mod 如未指定 key, 则第一次调用时随机生成一个整数(后面每次调用在这个整数上自增),将这个值与 topic 可用的 partition...group 消费进度 offset consumer 顺序消费 partition 上的 message, offset 在老版本(0.10以前)由zk来保存, 由于zk的性能不好, 在之后的版本是专门放在一个...还提供了更精确的提交 api, 可以实现处理完一批消息后, 提交最后一个 offset 值。...也就是说,所有 Broker 都有各自的 Coordinator 组件 每个 group 都会选择一个 Coordinator 来完成自己组内各 Partition 的 Offset 信息,选择的规则如下...,LEOn)} leader 处理 producer 的消息后, 也会拉取所有远程副本 LEO 值然后与当前 HW对比, 整体更新值与上一种相同。

    43820

    top命令

    -d interval: 指定屏幕更新之间的延迟,并覆盖个人配置文件中的相应值或启动默认值,启动后也可以使用d或s交互命令更改。...-S: 累计时间切换,以倒转最后一个记忆中的S状态开始,当累计时间模式打开时,每个进程都会列出它及其子进程使用的cpu时间。...,当您选择显示命令行时,没有命令行的进程(如内核线程)将只显示程序名,此字段也可能受视图显示模式的影响,注意COMMAND字段与大多数列不同,不是固定宽度的,显示时,它加上任何其他可变宽度列将分配所有剩余屏幕宽度...ENVIRON: Environment variables,显示各个进程看到的所有环境变量(如果有),这些变量将以原始的本机顺序显示,而不是您习惯于用非限定的set看到的排序顺序,注意ENVIRON字段与大多数列不同...P: Last used CPU (SMP),表示最后使用的处理器的数字,在真正的SMP环境中,这可能会频繁更改,因为内核有意使用弱关联,另外,运行top的行为可能会破坏这种弱关联,并导致更多进程更频繁地更改

    2.4K10

    高效查询秘诀,解码YashanDB优化器分组查询优化手段

    产生分组操作的场景通常以下四种场景可能产生分组操作:01 直接使用Group by关键字比如下面的例子,统计每个部门入职时间大于三年的员工数,首先选择出入职时间大于三年的所有员工数,然后按照部门进行分组操作...1,3,2,3,1 → SORT-GROUP:(1,1),2,(3,3) 在结构上,每个不同的分组值,只保留一个值与前面的汇总结果。...优化方式3:列顺序优化从逻辑意义上,分组结果与分组列的顺序是无关的,也就是说group by a1, b1与group by b1, a1是等价的,但是排序是与列的顺序强相关的。...当同时存在排序和分组时,YashanDB优化器在选择排序分组算法时,会尝试优化分组顺序,从而保证排序可以利用分组的顺序,优化掉一次排序操作。...YashannDB优化器将根据统计信息,来选择最佳的执行方式,并尽可能的保证统计信息的正确性。当然,网络吞吐、内存大小等,也会影响到优化器选择。

    4210

    从一个消费慢的例子深入理解 kafka rebalance

    某一天我们收到消费端消费严重落后生产的告警。第一时间相关同学去看了consumer group的消费曲线监控,消费速率明显出现异常。下面这张示意图展示了这种情况。...每个Group都会选择一个Coordinator来完成自己组内各Partition的Offset信息,选择的规则如下:1....consumer默认提供了2种分配策略:range策略:将单个topic的分区按顺序排列,然后把这些分区划分成固定大小的分区段并依次分配给每个consumer。...Leader,同时还会决定partition分配策略,最后会将这些信息封装成JoinGroupResponse 返回给Group Leader Consumer6....这个超时时间就是max.poll.interval.ms的值,默认是5分钟,因此这种情况下rebalance的耗时就会长达5分钟,导致所有消费者都无法进行正常消费,这对生产来说是个很大的问题。

    1.4K21

    cfq-iosched.txt

    ,服务树(对于随机工作负载),CFQ选择要从中分派的下一个队列。...这是在观察到高端存储由于顺序队列上的空闲而出现瓶颈并 允许从单个队列进行调度后引入的。...slice_sync ---------- 当某个队列被选择执行的时候, 这个队列IO请求,只在一个确定的时间片里去执行,在切换到另外一个队列之前。...例如,如果一个进程正在执行相关的顺序读取 (下一次读取仅在前一次读取完成后才开始),那么不从其他队列发送请求应该会有所帮助, 因为我们没有移动磁盘头,而是继续从一个队列发送顺序IO。...所以如果有4个排队等候分派的IO, 只有在最后一个队列分派最后一个IO后,我们才会空闲。

    1.1K20

    kafka学习

    ,并对消费者按照字母顺序进行排序,然后用Partitions分区的个数除以消费者线程的总数来决定每个消费者线程消费几个分区。...Producer传递到Broker的每条消息都会分配一个顺序值,顺序值从0开始,用来标记消息生产的顺序。...每条消息的顺序值只相对于本批次的序号,所以这个值不能直接存储在日志文件中,服务端会将每条消息的顺序值转换成绝对偏移量。...图片sendfile()通过DMA将文件内容拷贝到一个读取缓冲区,然后由内核将数据拷贝到与输出套接字相关联的内核缓冲区。...acks=all是可用性最高的选择,但等待Follower应答引入了额外的响应时间。Leader需要等待ISR中所有副本做出应答,此时响应时间取决于ISR中最慢的那台机器。

    39630

    评测云硬盘读写性能

    dd仅能作单线程的顺序写入工作,然后只报告一个类似吞吐量的数值,毕竟该命令最初就是用来dump disk的数据内容的。...另外,最大峰值性能(maximum performance)不同于可持续性能(sustained performance),所以在评测时需要维持一段时间的稳定负载并统计平均值。...根据业务类型确认访问模式,锁定性能指标最后通过合适的评测选择最具性价比的方案。...fio的选项允许指定非常精确的IO模式,如随机读写、顺序读写等,并查看磁盘子系统完成这些任务需要多长时间。...其对与高性能云硬盘和SSD云盘时延差距不大,评测时一般0.5ms~5ms之间都可以算是正常的。最后是I/O的利用率(utilization),如果作为评测,一般是需要跑满的。

    8.1K4414

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

    但并不是每个位置嵌套子查询都是有意义并实用的,这里对几种有实际意义的子查询进行说明。 现有表两张:一张学生表、一张班表。id相关联 ? ?...班级表中的班级id与学生表中的班级id相同的行,注意 WHERE c.class_id=s.class_id 这里就是别名用法的一个很好的体现,区分开了两张表中同样列名的列。...最后的GROUP BY可以理解为对重复行的去重,如果不加: ?...子查询总共执行一次,执行完毕后后将值传递给外部查询。 上文提到的例子中,第一个例子求学生对应班级名的即为相关子查询,其中WHERE c.class_id=s.class_id 即为相关条件。...其他的例子均只对一张表进行操作,为非相关子查询。 需要注意的是相关子查询主查询执行一回,子查询就执行一回,十分耗费时间,尤其是当数据多的时候。

    5.1K30
    领券