- 浏览: 1764564 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (520)
- Oracle (10)
- Oracle错误集 (8)
- Oracle安装升级 (15)
- Oracle日常管理 (51)
- Oracle字符集 (7)
- Oracle备份恢复 (24)
- Oracle优化 (4)
- Oracle编程 (52)
- Oracle导入导出 (19)
- Oracle体系结构 (15)
- Oracle网络 (2)
- Oracle安全 (2)
- Oracle权限 (3)
- Oracle数据字典和性能视图 (2)
- Oracle常用地址 (5)
- SQLPLUS专栏 (7)
- SqlServer (13)
- SqlServer2005编程 (27)
- SqlServer2005管理 (15)
- MySQL (20)
- Dorado应用 (1)
- C# (24)
- Arcgis Server开发 (20)
- ArcSDE技术 (19)
- UML学习 (2)
- 设计模式 (2)
- JAVA EE (4)
- JavaScript (3)
- OFBIZ (27)
- JAVA WEB开发 (22)
- Linux&Unix (34)
- SHELL编程 (14)
- C语言 (11)
- 网络协议 (14)
- FREEMARKER (2)
- GROOVY (2)
- JAVA语言 (3)
- 防火墙 (0)
- PHP (2)
- Apache (2)
- Loader Runner (1)
- Nginx (3)
- 数据库理论 (2)
- maven (1)
最新评论
-
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
pg_guo:
感谢
oracle中查看用户权限 -
xu234234:
5、MapResourceManager控件中添加了两个服务, ...
北京ArcGis Server应用基础培训笔记1
中值有两种定义:
1、当组中包含奇数个元素时,我们将直接返回中间的值
2、当组中包含偶数个元素时,返回两个中间值的平均值
示例:
--构造Groups表
IF OBJECT_ID('dbo.Groups') IS NOT NULL
DROP TABLE dbo.Groups;
GO
CREATE TABLE dbo.Groups
(
groupid VARCHAR(10) NOT NULL,
memberid INT NOT NULL,
string VARCHAR(10) NOT NULL,
val INT NOT NULL,
PRIMARY KEY (groupid, memberid)
);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('a', 3, 'stra1', 6);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('a', 9, 'stra2', 7);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('b', 2, 'strb1', 3);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('b', 4, 'strb2', 7);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('b', 5, 'strb3', 3);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('b', 9, 'strb4', 11);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('c', 3, 'strc1',;
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('c', 7, 'strc2', 10);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('c', 9, 'strc3', 12);
GO
--使用NTILE求中值
WITH Tiles AS
(
SELECT groupid, val,
NTILE(2) OVER(PARTITION BY groupid ORDER BY val) AS tile
FROM dbo.Groups
),
GroupedTiles AS
(
SELECT groupid, tile, COUNT(*) AS cnt,
CASE WHEN tile = 1 THEN MAX(val) ELSE MIN(val) END AS val
FROM Tiles
GROUP BY groupid, tile
)
SELECT groupid,
CASE WHEN MIN(cnt) = MAX(cnt) THEN AVG(1.*val)
ELSE MIN(val) END AS median
FROM GroupedTiles
GROUP BY groupid;
--利用ROW_NUMBER求中值,参与中值计算的两个值得绝对差小于或等于1
WITH RN AS
(
SELECT groupid, val,
ROW_NUMBER()
OVER(PARTITION BY groupid ORDER BY val, memberid) AS rna,
ROW_NUMBER()
OVER(PARTITION BY groupid ORDER BY val DESC, memberid DESC) AS rnd
FROM dbo.Groups
)
SELECT groupid, AVG(1.*val) AS median
FROM RN
WHERE ABS(rna - rnd) <= 1
GROUP BY groupid;
--通过从第一个行号衍生出第二个行号,降序行号可以用组中的行数减去升序行号再加1得到
WITH RN AS
(
SELECT groupid, val,
ROW_NUMBER() OVER(PARTITION BY groupid ORDER BY val) AS rn,
COUNT(*) OVER(PARTITION BY groupid) AS cnt
FROM dbo.Groups
)
SELECT groupid, AVG(1.*val) AS median
FROM RN
WHERE ABS(2*rn - cnt - 1) <= 1
GROUP BY groupid;
--IN((cnt+1)/2, (cnt+2)/2)方法
WITH RN AS
(
SELECT groupid, val,
ROW_NUMBER() OVER(PARTITION BY groupid ORDER BY val) AS rn,
COUNT(*) OVER(PARTITION BY groupid) AS cnt
FROM dbo.Groups
)
SELECT groupid, AVG(1.*val) AS median
FROM RN
WHERE rn IN((cnt+1)/2, (cnt+2)/2)
GROUP BY groupid;
GO
--使用top的方法求中值SELECT DISTINCT groupid,
((SELECT MAX(val)
FROM (SELECT TOP 50 PERCENT val
FROM dbo.Groups AS H1
WHERE H1.groupid = G.groupid
ORDER BY val) AS M1)
+
(SELECT MIN(val)
FROM (SELECT TOP 50 PERCENT val
FROM dbo.Groups AS H2
WHERE H2.groupid = G.groupid
ORDER BY val DESC) AS M2))
/2. AS median
FROM dbo.Groups AS G;
1、当组中包含奇数个元素时,我们将直接返回中间的值
2、当组中包含偶数个元素时,返回两个中间值的平均值
示例:
--构造Groups表
IF OBJECT_ID('dbo.Groups') IS NOT NULL
DROP TABLE dbo.Groups;
GO
CREATE TABLE dbo.Groups
(
groupid VARCHAR(10) NOT NULL,
memberid INT NOT NULL,
string VARCHAR(10) NOT NULL,
val INT NOT NULL,
PRIMARY KEY (groupid, memberid)
);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('a', 3, 'stra1', 6);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('a', 9, 'stra2', 7);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('b', 2, 'strb1', 3);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('b', 4, 'strb2', 7);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('b', 5, 'strb3', 3);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('b', 9, 'strb4', 11);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('c', 3, 'strc1',;
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('c', 7, 'strc2', 10);
INSERT INTO dbo.Groups(groupid, memberid, string, val)
VALUES('c', 9, 'strc3', 12);
GO
--使用NTILE求中值
WITH Tiles AS
(
SELECT groupid, val,
NTILE(2) OVER(PARTITION BY groupid ORDER BY val) AS tile
FROM dbo.Groups
),
GroupedTiles AS
(
SELECT groupid, tile, COUNT(*) AS cnt,
CASE WHEN tile = 1 THEN MAX(val) ELSE MIN(val) END AS val
FROM Tiles
GROUP BY groupid, tile
)
SELECT groupid,
CASE WHEN MIN(cnt) = MAX(cnt) THEN AVG(1.*val)
ELSE MIN(val) END AS median
FROM GroupedTiles
GROUP BY groupid;
--利用ROW_NUMBER求中值,参与中值计算的两个值得绝对差小于或等于1
WITH RN AS
(
SELECT groupid, val,
ROW_NUMBER()
OVER(PARTITION BY groupid ORDER BY val, memberid) AS rna,
ROW_NUMBER()
OVER(PARTITION BY groupid ORDER BY val DESC, memberid DESC) AS rnd
FROM dbo.Groups
)
SELECT groupid, AVG(1.*val) AS median
FROM RN
WHERE ABS(rna - rnd) <= 1
GROUP BY groupid;
--通过从第一个行号衍生出第二个行号,降序行号可以用组中的行数减去升序行号再加1得到
WITH RN AS
(
SELECT groupid, val,
ROW_NUMBER() OVER(PARTITION BY groupid ORDER BY val) AS rn,
COUNT(*) OVER(PARTITION BY groupid) AS cnt
FROM dbo.Groups
)
SELECT groupid, AVG(1.*val) AS median
FROM RN
WHERE ABS(2*rn - cnt - 1) <= 1
GROUP BY groupid;
--IN((cnt+1)/2, (cnt+2)/2)方法
WITH RN AS
(
SELECT groupid, val,
ROW_NUMBER() OVER(PARTITION BY groupid ORDER BY val) AS rn,
COUNT(*) OVER(PARTITION BY groupid) AS cnt
FROM dbo.Groups
)
SELECT groupid, AVG(1.*val) AS median
FROM RN
WHERE rn IN((cnt+1)/2, (cnt+2)/2)
GROUP BY groupid;
GO
--使用top的方法求中值SELECT DISTINCT groupid,
((SELECT MAX(val)
FROM (SELECT TOP 50 PERCENT val
FROM dbo.Groups AS H1
WHERE H1.groupid = G.groupid
ORDER BY val) AS M1)
+
(SELECT MIN(val)
FROM (SELECT TOP 50 PERCENT val
FROM dbo.Groups AS H2
WHERE H2.groupid = G.groupid
ORDER BY val DESC) AS M2))
/2. AS median
FROM dbo.Groups AS G;
发表评论
-
SQL Server 2005中处理表分区问题
2008-08-28 11:01 2007数据库性能调优是每一 ... -
SQL LIKE 通配符随笔
2008-07-04 09:26 1601通配符 说明 _ 与任意单字符匹配 % 与包含一 ... -
五种提高 SQL 性能的方法
2008-07-02 12:10 1123有时, 为了让应用程序运行得更快,所做的全部工作就是在这里或那 ... -
SQL操作全集
2008-07-02 12:01 1110SQL分类: DDL—数据定义语言(CREATE,ALTER, ... -
不同服务器数据库之间的数据操作
2008-07-02 11:56 1912--创建链接服务器 exec sp_addlinkedser ... -
远程连接操作
2008-07-02 11:52 1281--远程连接操作 /******************** ... -
合并分拆表
2008-07-02 11:46 1448--合并分拆表 /********************** ... -
行列互转
2008-07-02 11:45 1381--行列互转 /*********************** ... -
T-SQL查询学习笔记——求下属和祖先的算法
2008-04-10 14:08 1895构建试验环境: CREATE TABLE dbo.Employ ... -
T-SQL查询学习笔记——数据修改
2008-04-10 11:45 2792一、插入数据 包括:select into、insert e ... -
T-SQL查询学习笔记——使用TOP和APPLY解决常见问题
2008-04-09 14:45 20691、每组中的TOP n问题 CREATE UNIQUE IND ... -
T-SQL查询学习笔记——TOP子句
2008-04-09 13:59 3203在select查询或表表达式中,top结合order by子句 ... -
T-SQL查询学习笔记——分组因子的使用示例
2008-04-08 17:27 1651IF OBJECT_ID('Stocks') IS NOT N ... -
Over 字句
2008-04-07 17:34 1524功能:确定在应用关联的窗口函数之前,行集的分区和排序。 适用 ... -
sql 的随机函数newID()和RAND()
2008-03-20 11:05 3054SELECT * FROM Northwind..Orders ... -
T-SQL查询学习笔记——已有范围和缺失范围示例代码
2008-03-19 15:30 1887USE SqlTest;GOIF OBJECT_ID('db ... -
T-SQL查询学习笔记——快速生成数字辅助表的几种方法示例代码
2008-03-19 14:17 2297------------------------------- ... -
SELECT 与 SET 对变量赋值的区别
2008-03-17 15:29 2818SQL Server 中对已经定义的变量赋值的方式用两种,分别 ... -
SQL逻辑查询处理步骤
2008-03-14 17:22 17541、执行笛卡尔乘积(交叉联接) 2、应用ON筛选器(联接条件) ... -
Server 2005 中集合操作(UNION、EXCEPT、INTERSECT)
2008-03-14 16:32 1433集合操作在两个输入中比较全部行。 Union:返回 ...
相关推荐
figure16-giants-feh坐标转换成功-处理中值问题-成功.py
针对数字图像处理及窜改中一种常用的处理模式——中值滤波,提出一种基于局部二值模式(LBP)的中值滤波窜改检测方法。首先对待测图像利用基于中心对称像素的局部二值模式算子(C-LBP)定位其特征提取区域,随后基于...
《Transact-SQL权威指南》是一本深入探讨SQL在数据库管理中的应用的书籍,主要针对Transact-SQL,这是Microsoft SQL ...书中的内容丰富多样,涵盖了从基础概念到高级应用的广泛知识,是学习和提升T-SQL技能的宝贵资源。
空间滤波主要包括线性滤波和平滑滤波,其中平滑滤波又包含了中值滤波,这是一种非常有效的去噪方法。本文将深入探讨这些概念,并提供相关的源码。 线性滤波是基于像素邻域的加权平均过程,它可以用来降低图像的高频...
在图像处理领域,中值滤波是一种非常有效的去噪方法,尤其对于消除椒盐噪声有显著效果。本项目是基于MATLAB实现的图像线性空间中的中值滤波仿真实验,通过源码分析,我们可以深入理解中值滤波的工作原理和MATLAB编程...
针对非球面干涉图在预处理过程中去噪的问题,提出了一种基于改进P-M 模型与加权复合型中值滤波相结合的去噪方法。分析了P-M 模型,指出了该模型在去噪中的缺点并且提出了相应的改进模型。讨论了经典的中值滤波模型,...
针对基本微分进化算法在后期收敛速度慢,搜索能力差等问题,利用混沌搜索的随机性、遍历性以及对初值的敏感性等特性,提出了一种混合混沌搜索的微分进化算法——混沌微分进化算法。该算法既保持了基本微分进化算法...
计算机视觉学习笔记8-噪声与滤波 计算机视觉中,图像噪声是一个非常重要的问题,噪声的产生会严重影响图像质量。为了解决这个问题,需要对图像进行滤波处理。滤波是一种可以有效去除图像噪声的方法。常见的滤波方法...
在图像处理领域,中值滤波器和均值滤波器是两种常用的技术,用于减小图像噪声和提高图像质量。这两个概念对于理解和应用图像增强至关重要。本篇将深入探讨这两种滤波方法及其在实际中的应用。 首先,我们来了解**...
本课题采用中值滤波器对初步得到的视差图进行平滑,中值滤波是一种非线性滤波方法,可以有效去除椒盐噪声,同时保持边缘信息的完整性。 CUDA的引入使得这些计算可以在GPU上并行执行,极大地提高了运算速度。C++编程...
在图像处理领域,滤波是一种常见的操作,用于改善图像质量或提取特定信息。...在压缩包文件"016 简单线性与非线性滤波-方框+均值+高斯+中值+双边滤波"中,你将找到这些滤波方法的实现示例,可供学习和参考。
通过比较滤波窗口内像素点的灰度值与像素点灰度值的均值定义了模糊滤波系数,利用此模糊滤波系数对滤波方法进行加权,得到一种加权中值滤波器。通过对小窗口内的灰度值不等于最大灰度值和最小灰度值的像素点的检测...
3. **中值滤波**:中值滤波是一种非线性滤波方法,它用窗口内像素值的中值替换中心像素值,特别适合去除椒盐噪声,但在处理高斯噪声时可能不如均值或高斯滤波。 4. **自适应中值滤波**:自适应中值滤波根据局部图像...
这种滤波方法的核心思想是将信号序列中的每个元素替换为其周围邻域内的中值。相比于平均滤波,中值滤波器更能保留图像或信号的边缘,因为平均操作会平滑所有特征,包括有用的边缘信息。 在S7-200 PLC中,模拟量输入...
利用野火开发板STM32F103VET6 +超声波HC-SR04 完成倒车雷达功能,距离越近蜂鸣器频率越高,距离值通过中值滤波算法,以及卡尔曼滤波算法,算法系数可调,也可用在ADC数据采集滤波上,或者其他原始数据采集上
"几种中值滤波去噪方法分析" 中值滤波是一种非线性滤波方法,广泛应用于数字图像去噪处理。该方法可以有效地去除椒盐噪声,保护图像的边缘和细节信息。 标准中值滤波方法是最简单有效的去除椒盐噪声的方法之一。该...
图像滤波算法——均值、中值、高斯图像滤波算法 图像滤波算法是图像处理中的一个重要步骤,它可以去除图像中的噪声和瑕疵,提高图像的质量。本文将介绍三种常用的图像滤波算法:均值滤波、中值滤波和高斯滤波。 一...
高等数学教学设计——中值定理 本资源是高等数学教学设计的单元教学计划,旨在帮助学生掌握微分中值定理的知识和技能。教学目标包括理解和掌握罗尔定理、拉格朗日定理、柯西中值定理和洛比达法,以及判断函数的单调...