问题标签 [analytical]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - oracle的解析函数问题
请让我知道以下内容是否偏离主题、不清楚、太具体或太复杂而无法理解。我认为以下是描述、理解和解决的挑战。
CIF=cost, insurance, frieght(基本上就是进口价值)
输入表(导入)的简化版本如下所示:
在此处输入图像描述 因此,从一月到六月,值 1 分配给 SixMonthPeriod 列,其余月份的值分配为 2。
然后我想计算六个时期的单价,因此我使用
这很好,但是我想计算需要使用滞后(oracle 分析函数)的每个产品(超过六个月)的通货膨胀。六个月的期限必须固定。因此,如果特定产品的上一期缺失,则单价应为零。我想重新开始/开始计算每种产品的通货膨胀。单价和通货膨胀方程分别如下所示:
单价=(六个月期间的总和(重量))/(六个月期间的总和(CIF))通货膨胀=(当前单价 - 先前单价)/(先前单价)
我使用以下 SQL 计算每个产品六个月的通货膨胀率,其中每个产品的计算再次开始:
问题是通货膨胀期不固定。
例如,对于结果,我得到以下信息:
在此处输入图像描述 前两行很好,应该有空值,因为它们是我的第一行,因此没有 LagUnitPrice 和通货膨胀。
第三行有一个问题,它采用 0.34 作为 LagUnitPrice 但实际上它为零(对于 2016 年期间,产品大麦的 SixMthPeriod=1)。oracle 分析函数不考虑缺失的行(例如,对于 2016 年期间,产品大麦的 SixMthPeriod=1)。
我该如何解决这个问题(如果你理解我的话)?
我有 96 行,因此我可以将文件导出到 excel,并使用 excel 的公式来修复这些异常。
python - 队列分析:在整个列上索引一行
我是熊猫的新手。我实际上正在努力进行群组分析。
我有 :
名称:Cohort_period,数据类型:int64
我想获得:
名称:客户端,数据类型:int64
我尝试在多索引中使用 pandas 帮助,但我没有整理出来!
sql - SQL 查找分析函数中每个值的最小值
我正在使用 Microsoft SQL Server。我想写一个只有分析功能的查询(比如不使用 group by)
我想编写一个返回以下行的查询:
- MIN(Customer_number), count(code), private
- MIN(Customer_number), count(code), 业务
例如,我制作了两张桌子
通过这个例子,它应该只适用于 Customer_number = 1,2 的行,如下所示:
我写:
我尝试了这么多时间来了解如何返回正确的输出,为什么它不起作用并且找不到它
如果有人可以帮助我如何订购它,并解释出了什么问题,那就太好了。
hadoop - 将数据从数据湖检索到分析系统
我们在 Hadoop 文件系统中创建了一个新的数据湖。数据以 ORC 的形式存储。目前分析系统直接连接到数据湖来读取这些ORC文件。
有没有办法在数据湖和分析系统之间创建一个中间层来提供数据?
vector - 求四面体的面积和体积
所以给定 ABCD, A(0,0,0) B(1,1,0) , C(1,-1,1) ,D, (3,0,1) 我现在需要找到四面体的体积我知道四面体的体积 = 1/6 detA 但是这个矩阵的行列式是 0 所以这就是我的体积 = 0 或者我计算不正确
python - 为什么当 X 小于 0.5 时 sqrt(1-4*pow(X,2)) 显示数学域错误?
我试图在土壤域上实现赫兹分布负载。表达式是 sqrt(1-4*pow(X,2)),其中 X 小于 0.5。当我尝试在 ABAQUS 中使用表达式进行分析时,我得到了数学域错误。如何解决这个问题呢。
javascript - 魔方JS | 计算2个日期之间的差异
在多维数据集 js 中,查找天数对 mysql 数据库不起作用。请帮我解决。在计算......之间的余额天数时
这也行不通
sql - 仅基于更改日志数据重建历史表行
我正在研究一些复杂的销售分析,这非常令人费解......而且很无聊......
所以对于这个问题,我将使用一个有趣的、含糖的比喻:自动售货机。
但是我的实际表格的结构是相同的。
(您可以假设有很多索引、约束等)
- 基本表 #1 - 库存
假设我们有一个包含自动售货机库存数据的表。
这张表简单地显示了目前每台自动售货机中每种糖果的数量。
我知道,通常会有一个ITEM_TYPE
包含'Snickers'、'Milky Way'等行的表格,但由于多种原因,这不是我们表格的构造方式。
实际上,这不是产品数量,而是预先汇总的销售数据:"Pipeline Total"、"Forecast Total"等。
因此,我需要一个简单的表格,其中包含不同“类型”总计的单独列一起工作。
对于此示例,我还添加了一些文本列,以证明我必须考虑各种数据类型。
(这使事情变得复杂。)
除了ID
,所有列都可以为空 - 这是一个真正的问题。
就我们而言,如果列是NULL
,那么NULL
就是我们需要用于分析和报告的官方值。
示例数据:
- 基本表 #2 - 更改日志
自动售货机将定期连接到数据库并更新其库存记录。
也许他们每次有人买东西时更新,或者他们每 30 分钟更新一次,或者他们只在有人补充糖果时更新——老实说,这并不重要。
重要的是,每当更新VENDING_MACHINES
表中的记录时,都会执行一个触发器,将每个单独的更改记录在一个单独的日志表中VENDING_MACHINES_CHANGE_LOG
。
这个触发器已经写好了,效果很好。
(如果使用已存在的相同值“更新”列,则触发器应忽略更改。)
为表中修改的每一列VENDING_MACHINES
记录一个单独的行(除了ID
)。
因此,如果在表中插入一个全新的行VENDING_MACHINES
(即新的自动售货机),VENDING_MACHINES_CHANGE_LOG
表中将记录 8 行 - 每个非 ID 列对应VENDING_MACHINES
.
(在我的真实场景中,有 90 多列被跟踪。
但通常在任何给定时间只有一两列被更新,因此不会失控。)
此“更改日志”旨在成为VENDING_MACHINES
表的永久历史记录,因此我们不会创建外键约束 - 如果删除了一行,VENDING_MACHINES
我们希望在更改日志中保留孤立的历史记录。
此外,Apex 不支持ON UPDATE CASCADE
(?),因此触发器必须检查ID
列的更新,并在相关表中手动传播更新(例如更改日志)。
更改日志示例数据:
- 所需结果 - 查询(视图)以从更改日志中重建历史表行
我需要构建一个视图来重建完整的历史VENDING_MACHINES
表,只使用VENDING_MACHINE_CHANGE_LOG
表中的数据。
即,由于允许孤立更改日志行,因此之前已删除的行VENDING_MACHINES
应该重新出现。
结果视图应该允许我检索任何VENDING_MACHINE
行,就像它在历史上的任何特定点存在一样。
的示例数据VENDING_MACHINE_CHANGE_LOG
非常短,不足以产生完整的结果......
但它应该足以证明预期的结果。
最终我认为分析功能将是必需的。
但我是 SQL 分析函数的新手,我也是 Oracle 和 Apex 的新手。
所以我不确定如何解决这个问题 - 重建原始表行的最佳方法是什么?
期望的结果如下所示(按 排序CHANGE_TIMESTAMP
):
这是相同的期望结果,另外按以下方式排序VENDING_MACHINE_ID
:
我已经构建了一个简单的查询来为 each 提取最新的列值VENDING_MACHINE_ID
,但我认为这种方法不适合这项艰巨的任务。
我认为我需要使用分析函数来获得更好的性能和灵活性。(或者也许我错了?)
请注意,left join
专门命中VENDING_MACHINE_CHANGE_LOG
表的唯一索引 - 这是设计使然。