- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试重新创建下面的 Excel 公式/表格并显示 True/False,但被卡住了。
Excel公式: =ABS(ROUND(MEDIAN(C$2:C2),0)-ROUND(MODE.SNGL(C$2:C2),0))<[sample.xlsx]变量!$B$2
我有 200 多行数据,我只需要从第一行到当前行计算的中位数和众数。我可以为 SQL 中的所有行创建中位数,但这不符合我的需要。与模式相同。上面的公式将在 Excel 单元格 D2 中并向下填充。它在公式末尾调用的变量只是数字 4 .
任何建议或指示都会很棒。谢谢!
Excel 片段:
Quick view of how this table looks in Excel
在 SQL 中构建这个精确表的 SQL 代码。
IF NOT EXISTS (
select * from sysobjects where name='SampleExample' and xtype='U'
) CREATE TABLE SampleExample (
[Seconds] INT,
[Sequence] INT,
[Value] NUMERIC(12, 9),
[Result] NVARCHAR(4)
);
INSERT INTO SampleExample VALUES
(598,1,236.888453364,N'#N/A'),
(740,2,236.888453364,N'True'),
(885,3,235.463708639,N'True'),
(1024,4,236.177295446,N'True'),
(1189,5,236.177295446,N'True'),
(1330,6,236.866638064,N'True'),
(1463,7,236.177295446,N'True'),
(1599,8,236.866638064,N'True'),
(1735,9,236.866638064,N'True'),
(1863,10,236.866638064,N'True'),
(1986,11,236.866638064,N'True'),
(2110,12,236.866638064,N'True'),
(2235,13,236.880749464,N'True'),
(2362,14,236.908763647,N'True'),
(2487,15,236.908763647,N'True'),
(2610,16,236.908763647,N'True'),
(2739,17,237.190827727,N'True'),
(2865,18,237.190827727,N'True'),
(3008,19,237.190827727,N'True'),
(3132,20,237.190827727,N'True');
当前中值查询。我在我的 SQL 表中添加了一个名为 Filename 的列,该列对于所有行都是相同的值。但这会找到平板电脑中所有行的中位数,而不是从第 1 行到当前行。
Declare @Median AS INT
Select @Median = (
(Select MAX([Value])
FROM
(Select TOP 50 PERCENT [Value], [Filename]
FROM SampleExample
Order by [Filename]) as BOTTOMHALF)
+
(Select MIN([Value])
FROM
(Select TOP 50 PERCENT [Value], [Filename]
FROM SampleExample
Order by [Filename] desc) as TOPHALF) ) / 2
当前模式查询:
Declare @Mode as INT
Select @Mode = (
Select TOP 1 ROUND([Value],0) as MODE
from SampleExample
Group by [Value]
Order by COUNT(*) DESC
)
我正在寻找的结果是真/假。我在我的 SQL 查询中使用 CASE:
CASE WHEN @Variable > @Median - @Mode THEN 'True' ELSE 'False' END AS Result
最佳答案
SQL Server(和一般的 SQL)具有计算中位数的功能。它具有直观的名称 percentile_cont()
.而且,它只作为窗口函数存在,而不是聚合函数。
你想要一个运行中位数。理想情况下,最好这样写:
select se.*,
avg(value) over (order by sequence) as avg_value,
percentile_cont(0.5) over (within group order by sequence) over (order by sequence)
from sampleexample se;
但不支持累积中位数。所以,剩下
apply
选项:
select se.*, se2.*
from sampleexample se cross apply
(select top (1) percentile_cont(0.5) within group (order by value) over () as median,
avg(value) over () as avg_value
from sampleexample se2
where se2.sequence <= se.sequence
) se2;
Here是一个 db<>fiddle。
select se.*, se2.*
from sesampleexample se cross apply
(select top (1) percentile_cont(0.5) within group (order by value) over () as median,
avg(value) over () as avg_value,
value as mode
from (select se2.*, count(*) over (partition by se2.value) as value_cnt
from sampleexample se2
where se2.sequence <= se.sequence
) se2
order by se2.value_cnt desc
) se2
关于sql - 在 SQL 中重新创建移动中位数和移动模式 Excel 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63972747/
基本上在 excel 中,我想要一个表格,就像下面右边给出的那个(我的数据规模比给出的例子大很多),它有每个主题的中位数,每个条件(例如 TADA、TADP、TPDA , TPDP)。理想情况下,我会
我有一个大小为5000 * 5000的矩阵,其90%的值为0。是否有现成的解决方案可用来计算排除“0”后该矩阵的均值,中位数? 一种粗制解决方案是将所有0更改为NA并使用 median(x, na.
这个问题已经有答案了: Mean per group in a data.frame [duplicate] (8 个回答) 已关闭 9 年前。 我有一个数据框,详细记录了客户花了多少钱,如下所示:
这是我的代码,用于打印所有职业的平均值和中位数。 occupation_lst = ['ALL OCCUPATIONS', 'MANAGEMENT', 'Chief executives', 'Gen
我的 csv 文件中有一个数据集,如下所示: teacher student student grade Jon marin
如何在 C 中不使用数组的情况下找到一组数字的平均值、中位数?问题不是找到平均值或中位数的方法,而是如果不允许使用数组,如何存储一组数字并对它们执行一些操作? 最佳答案 一个有趣的问题。 关键是找到一
我正在使用 SQL Server 2008 如果我有这样的表: Code Value ----------------------- 4 240 4 299 4 21
我正在尝试获取表中一组值的平均值、中位数、众数和范围。我能够得到平均值,但中位数、范围和众数我得到了错误的值。 下面是我为上述概念尝试过的代码。 Select CDS.[Commodity_S
我正在尝试获取表中一组值的平均值、中位数、众数和范围。我能够得到平均值,但中位数、范围和众数我得到了错误的值。 下面是我为上述概念尝试过的代码。 Select CDS.[Commodity_S
我需要从输入文件中查找平均值、中位数、众数和范围。 [input file has the numbers{60,75,53,49,92,71}] 我不知道如何打印范围内的计算结果或计算众数。 这很糟
这个问题已经有答案了: Division of integers in Java [duplicate] (7 个回答) 已关闭 7 年前。 public static double calcMed
当我输入 1,2,3 时我的中位数计算有问题我的中位数是 = 44 我不知道为什么 double wynik = 0; string x1 = textBox1.Text; string[] tab
我的中位数 3 实现在这里运行不正常。我必须为媒体随机选择 3 个数字,这是我的代码,请帮助我。 #include"stdafx.h" #include #include using namespa
我有一个文件,其中有如下几秒钟的数字: 0.01033 0.003797 0.02648 0.007583 0.007491 0.028038 0.012794 0.00524 0.019655 0.
是否有任何函数(作为数学库的一部分)可以计算 mean 、中位数、众数和范围来自一组数字。 最佳答案 是的,似乎确实有第三个库(Java Math 中没有)。出现的两个是: http://opsres
我目前正在尝试从具有两个条件的一系列数据中提取中位数。本质上相当于下面的 AVERAGEIFS(),我工作得很好。 AVERAGEIFS(): =AVERAGEIFS(Analysis!$F:$F,A
我有一个 pandas 数据框,看起来像这样: 给定行中的每个值要么是相同的数字,要么是 NaN。我想计算数据框中所有两列组合的平均值、中位数和获取计数,其中两列都不是 NaN。 例如,上述数据帧的结
我有以下数据: [4.1, 4.1, 4.1, 4.2, 4.3, 4.3, 4.4, 4.5, 4.6, 4.6, 4.8, 4.9, 5.1, 5.1, 5.2, 5.2, 5.3, 5.3, 5
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
一组整数作为输入。您必须返回该集合的子集,以便该子集的均值 - 中位数最大。 示例 1 输入 {1,2,3,4} 输出 {1,2,4} 例子2 输入 {1,2,2,3,3} 输出 {2,2,3} 最佳
我是一名优秀的程序员,十分优秀!