我在网站上有一个用户交互表,我需要计算每个用户之间的平均交互时间。为了使其更容易理解,这里有一些表的记录:
第一列是用户ID,第二列是交互时间。我需要的结果是每个用户的交互之间的平均时间。示例:
我已经尝试过使用窗口函数,但我无法获得平均值,因为PostgreSQL不允许我在窗函数上使用GROUP BY或AVG,我可以使用以下命令,但无法根据用户ID对其进行分组。
SELECT INTERACTION_DATE - LAG(INTERACTION_DATE ) OVER (ORDER BY INTERACTION_DATE )
所以,我决定创建自己的自定义函数,然后创建一个自定义聚合函数来执行此操作,并在group by子句中使用此函数:
CREATE OR REPLACE FUNCTION DATE_INTERVAL(TIMESTAMP)
RETURNS TABLE (USER_INTERVALS INTERVAL)
AS $$
SELECT $1 - LAG($1) OVER (ORDER BY $1)
$$
LANGUAGE SQL
IMMUTABLE;
但是这个函数只返回几行,其中一列具有空值。
有更好的方法吗?
答案 0 :(得分:1)
您需要首先计算每行(和用户)的交互之间的差异,然后您可以计算平均值:
prob = model.predict(net_in)[0]
# Reshape to 2d here since the networks outputs a flat array per channel
prob_edge = np.sqrt(prob.shape[0]).astype(np.int)
prob = prob.reshape((prob_edge, prob_edge, 13))
# Upsample
if args.zoom > 1:
prob = interp_map(prob, args.zoom, image_size[1], image_size[0])
# Recover the most likely prediction (actual segment class)
prediction = np.argmax(prob, axis=2)
# Apply the color palette to the segmented image
color_image = np.array(pascal_palette)[prediction.ravel()].reshape(
prediction.shape + (3,))
print('Saving results to: ', args.output_path)
with open(args.output_path, 'wb') as out_file:
Image.fromarray(np.multiply(color_image,255)).save(out_file)
答案 1 :(得分:0)
封装你的第一个查询,然后计算平均值:
chromeOptions.addArguments("window-size=1980,1080");