【发布时间】:2018-10-02 06:50:40
【问题描述】:
我有一张如下表。
我实际上尝试在 2 个案例中进行选择汇总报告。
+---------------------+---------------+-----------------+
| timestamp | user | open_pages |
+---------------------+---------------+-----------------+
| 2018-09-19 12:27:02 | user1 | 66 |
| 2018-09-19 12:27:02 | user2 | 24 |
| 2018-09-19 12:27:10 | user2 | 24 |
| 2018-09-19 12:28:30 | user1 | 21 |
| 2018-09-19 12:28:30 | user2 | 20 |
| 2018-09-19 12:28:35 | user1 | 17 |
| 2018-09-19 12:28:35 | user2 | 11 |
| 2018-09-19 12:29:08 | user1 | 8 |
| 2018-09-19 12:29:08 | user2 | 8 |
| 2018-09-19 12:30:02 | user1 | 7 |
| 2018-09-19 12:30:02 | user2 | 6 |
+---------------------+---------------+-----------------+
案例 1:平均每分钟打开所有用户的页面
示例输出:
+--------+-------+------------+
| minute | User | Open_pages |
+--------+-------+------------+
| 27 | User1 | 66 |
| 27 | User2 | 26 |
| 28 | user1 | 56 |
| 28 | user2 | 51 |
| 29 | user1 | 21 |
| 29 | user2 | 28 |
+--------+-------+------------+
我试过这个查询,但它没有显示正确的值。
select minute(timestamp), user, avg(open_pages)
from tbl where DATE(timestamp)= '2018-09-19'
group by minute(timestamp) order by 1;
案例 2:谁在一分钟内打开了最大页数
在 12:27:02,user2 连接了两次,共打开了 48 个页面。所以他在 27 分钟时打开的页面最高。像这样,我想计算每分钟。
我不知道如何为此生成查询。
谁能帮我解决这两个问题?
【问题讨论】:
-
如果我们把 13:27:00 混在一起会怎样?
-
您的示例数据集适用于日期
2018-08-19,但您正在运行对DATE(timestamp)= '2018-10-02'的查询。如果您将查询结果与给定的示例数据集进行比较 - 您肯定不会得到正确的结果 -
是的,该表有该数据。但我只会在最后 1 小时内执行 where 条件。
-
@MadhurBhaiya。 - 这是一个示例查询,有人分享了这个。我已经改变了问题。感谢您通知此事。