我在Oracle SQL工作。我有一个有I和日期的表,我试图按主题找到日期之间的平均时间。看起来会是这样的。
表格
SubjectID Date
1 8/01/2013 12:00:00 AM
1 8/31/2013 12:00:00 AM
1 9/10/2013 12:00:00 AM
2 1/01/2010 12:00:00 AM
2 1/21/2010 12:00:00 AM
可以说,我需要编写一个由SubjectID遍历该表的查询,记录日期之间的时间,并输
将计算过的数据存储在每一行中是不好的做法,还是在应用层对数据库的每次读取进行计算更好。
存储在数据库中可以避免多次计算,但如果出现错误,则需要更新数据,而不仅仅是更改应用程序级别的计算。
我认为后者更好,但有一般的经验法则吗?
例如,我需要计算食物的每日总营养摄入量。因此,各种portions of energy of foods。我可以根据对应的food计算D4能量,并将每个portion的energy存储在portions表中,也可以每次使用相应的food从连接中计算。
你可以想象,如果你需要计算很长一段时间的年平均值、月平均值、日平均值等,它可能会变得相当笨拙。
如何使用物化视图,当每一
假设我有一个表,其中包含时间戳列、时间戳和分组列foo。 例如: CREATE TABLE my_table (
id SERIAL PRIMARY KEY,
foo integer NOT NULL,
timestamp timestamp without time zone NOT NULL
); 我想要做的是获得每组的平均时间差(GROUP BY foo),然后获得这些平均值的平均值。 我能遇到的唯一一件事就是得到所有行的平均值(未分组): SELECT avg(difference)
FROM (
SELECT timestam
我有表示变量Q1随时间变化的值的数据。时间不是由日期表示的,而是由自一个事件以来的天数表示的。 https://www.mediafire.com/file/yfzbx67yivvvkgv/dat.xlsx/file 我正在尝试绘制Q1along时间的平均值,就像这里 Plotting average of multiple variables in time-series using ggplot 我正在使用这段代码 library(Hmisc)
ggplot(dat,aes(x=days,y=Q1,colour=type,group=type)) +
stat_su
我有一个矩阵,它有两列x和y坐标。我想计算均方位移-这是给定时间内从起点移动到另一个点的平方距离,在许多不同的时间点上求平均值-假设所有时间间隔相等。
所以工作公式是:
MSD=average(r(t)-r(0))^2 where r(t) is position at time t and r(0) is position at time 0.
所以我用来计算这个的代码是:
#Create a vector to save the square of the distance between successive
#locations
distsq<- numeric(length=n
我有一个角度列表,想摆脱离群点。我的第一个想法是计算中位数。不幸的是,存在“包围”问题。我不知道一种“正确”的方法来定义一组角度(或时钟位置)的中位数。
我的想法是先计算平均值,然后用它来打破对面的圆圈。
Example:
{6, 50, 52, 54, 60, 250} (in degree, 0-360)
average ~ 39
new range [-219, 219) -> new order 250, 6, 50, 52, 54, 60, 250
52 or 54 as median
这是一个很好的方法,还是有更好的方法,我不知道?
有些关联:展示了计算角度平均值的方法。
我在python中定义了两种计算平均值的正确方法。
def avg_regular(values):
total = 0
for value in values:
total += value
return total/len(values)
def avg_concurrent(values):
mean = 0
num_of_values = len(values)
for value in values:
#calculate a small portion of the average for each
假设我有一个数据表,如下所示
DT <- data.table(DATE = as.Date(1:10), X = 1:100)
(X须大于10,因为只有一个obv。对于每一个日期,都不会有任何结果)我如何用以前k(例如,5) x的滚动平均值来计算每一个X?结果如下:
DATE X rollmean
1: 1970-01-02 1 NA
2: 1970-01-03 2 NA
3: 1970-01-04 3 NA
4: 1970-01-05 4 NA
5: 1970-01-06 5