MySql Datediff 在 select 子句中只返回第一行

问题描述 投票:0回答:1

对于像这样名为 Activity 的表:

player_id 设备ID 活动日期 玩过的游戏
1 2 2016-03-01 5
1 2 2016-03-02 6
2 3 2017-06-25 1
3 1 2016-02-02 0
3 4 2018-07-03 5

我想知道为什么以下查询只返回第一行的结果:

select player_id, datediff(event_date, min(event_date)) as date_diff
from Activity

退货:

player_id 日期_差异
1 28

我期待第四行会被返回,因为它具有最小的 event_date,诸如此类

player_id 日期_差异
2 0
mysql datediff
1个回答
0
投票

我认为您应该有一个单独的

select
查询来查找最短事件日期,然后可以使用它从主查询中的事件日期中减去

select player_id, event_date - (select min(event_date) from Activity)  as date_diff
from Activity;

从您的示例数据中,运行查询将得到:

player_id   date_diff
1   99
1   100
2   10423
3   0
3   20501
© www.soinside.com 2019 - 2024. All rights reserved.