- 博客(103)
- 收藏
- 关注
原创 2.4 创建视图
因为越来越多的表连接+子查询会十分复杂,所以可以将这些查询or子查询存在视图里,下一次还可以继续使用这些视图,而不需要再写一次查询。这样的查询十分频繁,所以可以直接保存为视图,在其他地方进行使用。views中将会显示我们创建的视图。
2025-06-12 20:53:53
457
原创 (高频SQL50题)196.删除重复的电子邮箱
表:Personid 是该表的主键列(具有唯一值的列)。该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。编写解决方案所有重复的电子邮件,只保留一个具有最小id的唯一电子邮件。(对于 SQL 用户,请注意你应该编写一个DELETE语句而不是SELECT语句。(对于 Pandas 用户,请注意你应该直接修改Person表。运行脚本后,显示的答案是Person表。驱动程序将首先编译并运行您的代码片段,然后再显示Person表。Person表的最终顺序。返回结果格式如下示例所示。
2025-04-08 08:44:07
464
原创 (高频SQL50题)1667. 修复表中的名字
表:Usersuser_id 是该表的主键(具有唯一值的列)。该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。编写解决方案,修复名字,使得只有第一个字符是大写的,其余都是小写的。返回按user_id排序的结果表。返回结果格式示例如下。
2025-04-07 15:24:03
200
原创 (高频SQL50题)1978.上级经理已离职的公司员工
表:Employees在 SQL 中,employee_id 是这个表的主键。这个表包含了员工,他们的薪水和上级经理的id。有一些员工没有上级经理(其 manager_id 是空值)。查找这些员工的id,他们的薪水严格少于$30000并且他们的上级经理已离职。当一个经理离开公司时,他们的信息需要从员工表中删除掉,但是表中的员工的manager_id这一列还是设置的离职经理的id。返回的结果按照从小到大排序。
2025-04-03 10:12:01
258
原创 (高频SQL50题)1789.员工的直属部门
Employee这张表的主键为 employee_id, department_id (具有唯一值的列的组合)employee_id 是员工的IDdepartment_id 是部门的ID,表示员工与该部门有关系primary_flag 是一个枚举类型,值分别为('Y', 'N'). 如果值为'Y',表示该部门是员工的直属部门。如果值是'N',则否一个员工可以属于多个部门。当一个员工加入的时候,他需要决定哪个部门是他的直属部门。
2025-04-02 11:27:00
835
原创 (高频SQL50题)1731.每位经理的下属员工数量
Employeesemployee_id 是这个表中具有不同值的列。该表包含员工以及需要听取他们汇报的上级经理的 ID 的信息。有些员工不需要向任何人汇报(reports_to 为空)。对于此问题,我们将至少有一个其他员工需要向他汇报的员工,视为一个经理。编写一个解决方案来返回需要听取汇报的所有经理的 ID、名称、直接向该经理汇报的员工人数,以及这些员工的平均年龄,其中该平均年龄需要四舍五入到最接近的整数。返回的结果集需要按照进行排序。
2025-04-01 11:28:53
558
原创 (高频SQL50题)1251. 平均售价
Prices(product_id,start_date,end_date) 是prices表的主键(具有唯一值的列的组合)。prices表的每一行表示的是某个产品在一段时期内的价格。每个产品的对应时间段是不会重叠的,这也意味着同一个产品的价格时段不会出现交叉。UnitsSold该表可能包含重复数据。该表的每一行表示的是每种产品的出售日期,单位和产品 id。编写解决方案以查找每种产品的平均售价。应该。如果产品没有任何售出,则假设其平均售价为 0。返回结果表。结果格式如下例所示。
2025-03-23 09:50:20
619
原创 (高频SQL50题)1661. 每台机器的进程平均运行时间
表:Activity该表展示了一家工厂网站的用户活动。(machine_id, process_id, activity_type) 是当前表的主键(具有唯一值的列的组合)。machine_id 是一台机器的ID号。process_id 是运行在各机器上的进程ID号。activity_type 是枚举类型 ('start', 'end')。timestamp 是浮点类型,代表当前时间(以秒为单位)。
2025-03-22 11:25:34
974
原创 (高频SQL50题)197. 上升的温度
表:Weatherid 是该表具有唯一值的列。没有具有相同 recordDate 的不同行。该表包含特定日期的温度信息编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的id。返回结果。结果格式如下例子所示。Weather 表:+----+| id |+----+| 2 || 4 |+----+2015-01-02 的温度比前一天高(10 -> 25)2015-01-04 的温度比前一天高(20 -> 30)
2025-03-18 14:49:38
357
原创 12.3 Hu矩函数
Hu 矩是归一化中心矩的线性组合。Hu 矩在图像旋转、缩放、平移等操作后,仍能保持矩 的不变性,所以经常会使用 Hu 距来识别图像的特征。
2025-03-10 19:24:16
461
原创 12.2 矩特征
比较两个轮廓最简单的方法是比较二者的轮廓矩。轮廓矩代表了一个轮廓、一幅图像、一 组点集的全局特征。矩信息包含了对应对象不同类型的几何特征,例如大小、位置、角度、形 状等。矩特征被广泛地应用在模式识别、图像识别等方面。
2025-03-10 19:22:15
283
原创 4.1 设计数据库
utf8 最长字节为 3,假如有一张表,其中有一列的类型为 char(10),表示固定长度的字符串,代表不管实际使用了 1 个字符还是 10 个字符,MySQL 还是机会保留 10 个字符串的空间,如果使用的 utf8 字符集,MySQL 则会为每个字符串预留最大字节数 3,这个列则会为每个单元格预留 10×3 的空间,也就是 30 个字节,如果这张表有 100 万记录,MySQL 则会为这张表配置 3000 万个字节的空间。删除操作也同理,假如表里存储的信息时财务信息,我们可能。
2025-03-09 18:19:50
629
原创 12.1 查找并绘制轮廓
返回值 contours 的 type 属性是 list 类型,list 的每个元素都是图像的一个轮廓,用 Numpy中的 ndarray 结构表示。每一个轮廓都是由若干个像素点构成的,点的个数不固定,具体个数取决于轮廓的形状。一般情况下,都是将图像处理为二 值图像后,再将其作为 image 参数使用的。其中,函数的返回值为 image,表示目标图像,即绘制了边缘的原始图像。该返回值返回的是一组轮廓信息,每个轮廓都是由若干个点所构成的。该返回值与参数 image 是一致的,就是原始输入图像。
2025-02-13 10:40:11
949
原创 11.2 采样可逆性的研究
虽然一幅图像在先后经过向下采样、向上采样后,会恢复为原始大小,但是向上采样和向 下采样不是互逆的。也就是说,虽然在经历两次采样操作后,得到的结果图像与原始图像的大 小一致,肉眼看起来也相似,但是二者的像素值并不是一致的。
2025-02-13 10:37:36
152
原创 10. Canny边缘检测
Canny 边缘检测分为如下几个步骤。步骤 1:去噪。噪声会影响边缘检测的准确性,因此首先要将噪声过滤掉。步骤 2:计算梯度的幅度与方向。步骤 3:非极大值抑制,即适当地让边缘“变瘦”。步骤 4:确定边缘。使用双阈值算法确定最终的边缘信息。下面对上述步骤分别进行简单的介绍。
2025-01-24 15:33:27
440
原创 2.1 汇总数据(形成报表)
通过该语句,可以查询到所有invoice_total的求和,但是并不知道每一个客户总销售,因此可以使用GROUP BY语句。可以看到,通过GROUP BY将总销售额按客户进行求和,并且按照total_sales的降序排序。该段代码将每个客户的销售额进行了加总,现在要求(只想包含>500美金的客户),应该如何去做。1. 聚合函数只运行非空值,所以如果列中有空值,它不会被算在函数里。因此,在GROUP BY前使用WHRER,在之后使用HAVING。注:默认状态下,会取重复值,此时需要在函数中使用。
2025-01-17 08:51:04
1084
原创 9.2 Scharr算子及函数使用
在函数 cv2.Sobel()中介绍过,如果 ksize=-1,则会使用 Scharr 滤波器。和是等价的。函数和函数的使用方式基本一致。首先,需要注意的是,参数 ddepth 的值应该设置为“cv2.CV_64F”,并对函数 cv2.Scharr() 的计算结果取绝对值,才能保证得到正确的处理结果。另外,需要注意的是,在函数 cv2.Scharr()中,要求参数 dx 和 dy 满足条件: dx >= 0 && dy >= 0 && dx+dy == 1。
2025-01-14 09:17:54
211
原创 8.4 核函数
函数 cv2.getStructuringElement()能够构造并返回一 个用于形态学处理所使用的结构元素。该函数用来返回一个用于形态学操作的指定大小和形状的结构元素。函数中的参数含义如下。
2025-01-13 14:01:54
504
原创 8.3 通用形态学函数
腐蚀操作和膨胀操作是形态学运算的基础,将腐蚀和膨胀操作进行组合,就可以实现开运 算、闭运算(关运算)、形态学梯度(Morphological Gradient)运算、礼帽运算(顶帽运算)、 黑帽运算、击中击不中等多种不同形式的运算。
2025-01-13 14:00:22
425
原创 7.6 2D卷积
dst 是返回值,表示进行方框滤波后得到的处理结果。src 是需要处理的图像,即原始图像。它能够有任意数量的通道,并能对各个通道独立处理。图像深度应该是 CV_8U、CV_16U、CV_16S、CV_32F 或者 CV_64F 中的一种。ddepth 是处理结果图像的图像深度,一般使用-1 表示与原始图像使用相同的图像深度。kernel 是卷积核,是一个单通道的数组。如果想在处理彩色图像时,让每个通道使用不同的核,则必须将彩色图像分解后使用不同的核完成操作。
2025-01-09 13:27:35
288
原创 7.5 双边滤波
为了简单起见,可以将两个 sigma(sigmaColor 和 sigmaSpace)值设置为相同的。如果它 们的值比较小(例如小于 10),滤波的效果将不太明显;如果它们的值较大(例如大于 150), 则滤波效果会比较明显,会产生卡通效果。从图中可以看出,双边滤波去除噪声的效果并不好。双边滤波的优势体现在对于边缘信息的处理上,下面通过一个例题来展示不同形式的滤波在边缘处理效果上的差异。中,参数 borderType 是可选参数,其余参数全部为必选参数。
2025-01-09 13:26:44
394
原创 7.2 方框滤波
与均值滤波的不同在于,方框滤波不会计算像素均值。在均值滤波中,滤波结果的像素值是任意一个点的邻域平均值,等于各邻域像素值之和除以邻域面积。而在方框滤波中,可以自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值,还是邻域像素值之和。
2025-01-03 08:45:58
546
原创 6.3 Otsu处理
Otsu 方法能够根据当前图像给出最佳的类间分割阈值。简而言之,Otsu 方法会遍历所有可 能阈值,从而找到最佳的阈值。在 OpenCV 中,通过在函数中对参数 type 的类型多传递一个参数“cv2.THRESH_OTSU”,即可实现 Otsu 方式的阈值分割。需要说明的是,在使用 Otsu 方法时,要把阈值设为 0。此时的函数会自动 寻找最优阈值,并将该阈值返回。
2025-01-02 09:08:21
501
原创 6.2 自适应阈值处理
函数根据参数 adaptiveMethod 来确定自适应阈值的计算方法,函数 包含和两种不 同的方法。这两种方法都是逐个像素地计算自适应阈值,自适应阈值等于每个像素由参数 blockSize 所指定邻域的加权平均值减去常量 C。
2025-01-02 09:06:32
552
原创 6.1 threshold函数
反二值化阈值处理的结果也是仅有两个值的二值图像,与二值化阈值处理的区别在于,二 者对像素值的处理方式不同。超阈值零处理会将图像中大于阈值的像素点的值处理为 0,小于或等于该阈值的像素点的 值保持不变。低阈值零处理会将图像中小于或等于阈值的像素点的值处理为 0,大于阈值的像素点的值保持不变。二值化阈值处理会将原始图像处理为仅有两个值的二值图像,其示意图如图 6-3 所示。截断阈值化处理会将图像中大于阈值的像素点的值设定为阈值,小于或等于该阈值的像素点的值保持不变。
2024-12-31 08:59:50
1569
原创 5.4 透视
仿射变换可以将矩形映射为任意平行四边形,透视变换则可以将矩形映射为 任意四边形。与仿射变换一样,同样可以使用一个函数来生成函数 cv2.warpPerspective()所使用的转换矩 阵。
2024-12-31 08:54:29
322
原创 1.3 数据插入、更新和删除
观察结果可以发现,当orders表中创建了id为11的信息时,对应的order_items也创建出id为11的两条信息。可以看出,实际上每一笔订单可以有多个product订单,所以说orders为母表,order_items为子表。表【orders_archived】缺少主键,也没有自动递增列AI,所以利用该方法创建表时,会忽略掉这些属性。在刚才的例子中,我们对client_id为3的信息进行了更新,如果此时只有地址,没有id应该如何?再打开导航面板,就可以看到数据库消失,再点击刷新,练习数据库就会出现。
2024-12-28 18:22:53
847
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人