SQL
文章平均质量分 59
SQL必知必会
程序员,公众号【SQL实现】作者,擅长解决各种SQL难题。
展开
-
一文讲透 MySQL 的窗口函数
窗口函数在统计类的需求中很常见,稍微复杂一点的查询需求就有可能用到它,使用窗口函数可以极大的简化我们的 SQL 语句。像 Oracle、SQL Server 这些数据库在较早的版本就支持窗口函数了,MySQL 直到 8.0 版本后才支持它。本文将介绍一些常用的窗口函数的用法。窗口函数按照实现方式分成两种:一种是非聚合窗口函数,另外一种是聚合窗口函数。非聚合窗口函数是相对于聚合窗口函数来说的。聚合函数是对一组数据计算后返回单个值(即分组),非聚合函数一次只会处理一行数据。窗口聚合函数在行记录上计算某个字段原创 2020-12-23 08:03:58 · 893 阅读 · 0 评论 -
MySQL 常用日期时间函数
本文将介绍在 MySQL 中经常用到的日期函数和时间函数 。原创 2023-09-21 07:00:00 · 192 阅读 · 0 评论 -
MySQL 的 Full Join
在工作中,我们用到full join的场景可能比较少。那么在什么时候你会想到使用full join呢?原创 2023-09-20 23:15:52 · 3507 阅读 · 0 评论 -
SQL 层级查询(二)
在上一篇文章里,我们介绍了在MySQL中实现层次查询的两种方式。前文举的示例是获取从叶子点到根节点的路径,今天我们要实现的是从根节点找到所有叶子节点。原创 2023-05-27 09:00:00 · 488 阅读 · 0 评论 -
SQL 层级查询(一)
相信大家在工作中都遇到过存在层次关系的数据表,典型的例子诸如菜单表(多级菜单)、用户表(拥有上下级关系)、商品类目表(多级类目)原创 2023-05-26 08:30:00 · 791 阅读 · 0 评论 -
SQL 生成连续的编号
给大家一分钟,请思考:在你熟悉的数据库里使用SQL快速生成001~999的编号有哪些方法原创 2023-05-22 08:00:00 · 2957 阅读 · 0 评论 -
SQL 计算账户余额
本文分享了两个使用 SQL 依照一定顺序实现按行累加的技巧原创 2023-05-21 09:00:00 · 1062 阅读 · 0 评论 -
SQL 统计日活、周活指标
在 SQL 中使用 with 句法实现递归查询,从而实现一些较为复杂的需求原创 2023-05-20 21:23:16 · 775 阅读 · 0 评论 -
基于MySQL环境下的数据处理技巧
本文源于我在团队内部的一次技术分享,在这里将和大家分享表维护的技巧、常用的函数、关联查询的写法以及一些 SQL 优化案例。原创 2023-05-19 00:32:42 · 305 阅读 · 1 评论 -
MySQL 中 WHERE 和 HAVING 的区别
在 MySQL 中,WHERE 子句和 HAVING 子句都有过滤的作用,它们有什么区别呢?原创 2021-02-25 23:42:29 · 211 阅读 · 0 评论 -
MySQL 的更新语句
本文将和大家分享 MySQL 更新语句的一些小众语法,及笔者在使用多表关联更新遇到的一些问题。原创 2021-01-03 12:37:18 · 14221 阅读 · 2 评论 -
SQL 背包问题
这是一道简化的背包问题:有一背包能容纳 50kg 的物品,现有 9 种物品(它们的重量分别是5kg、8kg、20kg、35kg、41kg、2kg、15kg、10kg、9kg),要刚好能装满背包,有多少种物品组合?由于要用到 SQL 来处理,我们先把上面的物品的重量的数据存到表中,并给每种物品分配一个编号。物品表 bag 的数据如下:id num ------ --------001 5002 8003 200原创 2020-12-23 07:57:43 · 459 阅读 · 0 评论 -
SQL 求最短路径
研究过算法的朋友,应该都遇到过最短路径求值的问题。简单来说,就是从出发地到目的地有多条路线可走,要求使用算法找出最短路径。如果使用的是 SQL ,怎么解决这类问题?接着往下看,很快就有答案了。先看示例表,dist 存储了目的地到出发地的距离,我们要计算出从 a 地出发到其它地点的最短距离。sp ep distance ------ ------ ----------a b 5a c 1原创 2020-12-19 09:30:34 · 1272 阅读 · 1 评论 -
SQL 混合排序
本文的写作思路是来自群友分享在群里的一道练习题,笔者觉得这道题有点小难度,且这类需求也比较常见。具体的需求描述请看下图。咋一看,有点摸不着头脑。既要按照 score 排序,又要考虑到 A、A-1、A-2 这种数据之间的关系并使用另一种排序规则。据分享这道题的朋友说,实际上这是一份店铺的销量数据。出题人出于某方面的考虑把表的字段名称改了,name 是店铺名称,名称中带有“-”表示分店,score 是销售额。出题人希望能依据城市、销售额查看各个店铺的销售数据,并且当存在分店时,分店能紧挨在总店后面按照 i原创 2020-12-16 23:10:56 · 964 阅读 · 0 评论 -
SQL 获取状态一致的分组
星星点灯是一家水果店,它提供了外卖水果拼盘的服务。水果店能够提供四种水果拼盘:水果魔方、海星欧蕾、猫头鹰、草莓雪山,下表反应了某一时刻店内的水果的准备情况。 id platter fruit ready ------ ------------ --------- -------- 1 水果魔方 猕猴桃 1 2 水果魔方 香蕉 1 3 水果魔方原创 2020-12-15 08:22:15 · 308 阅读 · 0 评论 -
SQL 分析大盘走势
下表(stock)记录了某指数过去一段时间的收盘价,我们要从这张表中找出收盘价持续上涨的日期。deal_date price ---------- --------2020-11-20 33772020-11-23 34142020-11-24 34022020-11-25 33622020-11-26 33692020-11-27 34082020-11-30 33912020-12-01 345原创 2020-12-12 14:14:34 · 490 阅读 · 0 评论 -
SQL 预订座位
元旦假期就快到了,计划出去玩的朋友,都订好票了么?今天,我们用 SQL 模拟订座的场景。seats 是座位预订表,表结构如下:CREATE TABLE `seats` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `row_no` int DEFAULT NULL COMMENT '第几排', `seat` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMEN原创 2020-12-10 22:43:59 · 924 阅读 · 0 评论