繁体   English   中英

如何在PostgreSQL中按DISTINCT user_ids数和GROUP BY日期计算列的AVG值

How to calculate AVG value of column by number of DISTINCT user_ids and GROUP BY date in Postgresql

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我希望按日期查找每位唯一身份用户的平均时长。

数据表

| date       | user_id | duration |
|------------|---------|----------|
| 2018-10-02 | 1       | 5        |   
| 2018-10-02 | 1       | 10       |   
| 2018-10-02 | 2       | 15       |   
| 2018-10-03 | 1       | 20       |   
| 2018-10-03 | 2       | 30       |
| 2018-10-04 | 2       | 5        |

预期收益

| date       | ave_duration_per_unique_user |
|------------|------------------------------|
| 2018-10-02 | 15                           |
| 2018-10-03 | 25                           |
| 2018-10-04 | 5                            |

下面的查询根据日期的总持续时间/日期的总条目数给出平均值。 该日期的条目总数应为该日期的唯一user_id数。

SELECT
  DISTINCT date,
  AVG(session_duration)
FROM
  my_table
GROUP BY
  date, distinct_id
ORDER BY
  date
| date       | ave_duration_per_unique_user |
|------------|------------------------------|
| 2018-10-02 | 10                           | // should be 15
| 2018-10-03 | 25                           |
| 2018-10-04 | 5                            |
2 个回复

您可以按照以下方式进行算术运算:

select date, sum(duration) / count(distinct user)
from my_table
group by date;

我将注意到,我对“每个唯一用户的平均值”的定义有些不同。 第一次约会是(7.5 + 15)/ 2 = 11.25。 但是,这不是您描述的计算。

要点在此处显示表defs和数据定义,但这是您要查找的查询:

testdb=# select date, avg(user_total)::bigint from (
    select date, user_id, sum(duration) user_total from t group by date, user_id)_
         group by date order by date;
    date    | avg 
------------+-----
 2018-10-02 |  15
 2018-10-03 |  25
 2018-10-04 |   5
(3 rows)
1 查找组的所有 USER_ID 的最大日期记录

我有一个名为emp_attendance的表,其中有两列log_in_date和user_id 。 我只想获取所有给定 user_ids 的所有maximum ( latest ) log_in dates (给出了 100 多个 user_ids)。 意思是,我只想知道特定用户在哪个最新(最大) ...

2019-04-12 09:10:43 1 18   mysql
3 如何创建cookie来标识user_ID

在我网站的消息中心,用户可以评分并互相反馈。 反馈和评分系统在屏幕上显示为弹出窗口。 我已经为该弹出窗口创建了cookie,其方式是,如果用户关闭弹出窗口或提交评分/反馈,则该弹出窗口仅在24小时后才会显示(Cookie在1天后过期)。 这里的问题是,一旦关闭/提交了要对特定用户进行评级的 ...

4 "webhook 如何识别 USER_ID?"

我正在开发一个 webhook,我希望它能够@提及特定用户。 简单消息格式指定使用<users/123456789012345>的格式来@提及特定用户。 由于这不是机器人,因此它不处理传入消息并且无法从发件人字段中提取消息,正如上面链接的开发人员网站上的注释中所建议的那样。 如何获取 ...

5 如何使用dplyr计算迄今为止在组中遇到的不同值的数量

我有按客户ID分组并按购买日期排序的客户数据。 我想添加一列,以累计计算迄今为止已订购的不同产品的数量-即: 使用输入数据集,我想使用dplyr创建输出数据。 我如何保持迄今为止遇到的不同产品的累计计数? ...

2019-02-04 06:10:24 2 42   r/ dplyr
6 MySQL:检索ID,其中x个与之关联的user_id数量

预先非常感谢您的帮助。 我有一个MySQL表,看起来像下面的DB Fiddle: https://www.db-fiddle.com/f/xa2Dt9cAPhiMfHcEv8Lifo/0 我需要做的是检索session_id,在其中可以指定与之关联的user_id,并检索与这些 ...

2018-11-04 14:25:20 1 36   mysql
7 规范化或不规范化user_id

在我的Rails应用程序中,我有各种包含用户数据的数据库表。 其中一些表有很多行(在某些情况下每个用户多达500,000行)并经常查询。 每当我查询任何表时,当前用户的user_id就在查询中的某个位置 - 直接,如果表与用户有直接关系,或者通过连接,如果它们通过其他表相关联。 我应该 ...

9 如何将user_ids数组提供给flickr.people.getInfo()?

我一直在使用他们的user_ids提取flickr用户的位置(不是经纬度,而是人的国家)。 我制作了一个数据框(以下是数据框),其中包含照片ID,所有者和其他几列。 我的尝试是通过遍历数据帧中的所有者列,将每个所有者提供给flickr.people.getInfo()查询。 这是我的尝试 ...

10 计算列中值的不同实例数

长期潜伏。 尽管没有任何解决方案对我有用,但我已经进行了搜索和搜索。 我在 Sybase (ASE) 数据库中工作(大多数 mssql/mysql 事务数据库解决方案都可以正常工作) 在我的示例中,我试图计算/计算特定“party_id”在列中列出的次数。 我遇到的问题是它只计算每一行 - 所以当 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM