首页 > 试题广场 >

在gameList表中(player_id, event_d

[单选题]

在gameList表中(player_id, event_date)是主键,如何查找出每个player_id的第一次登录的时间(event_date)?

player_id

device_id

event_date

games_played

111

21

2020-03-01

5

111

21

2020-01-02

6

212

33

2020-09-03

1

322

11

2020-01-21

0

322

44

2020-03-02

5

  • SELECT player_id, min(event_date) as first_login FROM gameList GROUP BY player_id

  • SELECT player_id, min(device_id) as first_login FROM gameList GROUP BY player_id

  • SELECT player_id, event_date as first_login FROM gameList GROUP BY player_id WHERE min(event_date)

  • SELECT player_id, min(event_date) as first_login FROM gameList WHERE min(event_date) GROUP BY player_id

登陆时间对应的字段是event_date,第一次意为最早,用min()聚合函数,这是除求数字最小,也能求日期最早。
如果求最近一次,用max()函数。

发表于 2021-12-24 14:50:43 回复(0)
D选项的错误应该也 WHERE子句中 使用了 min(event_date)
发表于 2023-03-05 09:58:26 回复(0)

正确答案是 A。

首先,我们需要查询每个 player_id 的第一次登录时间,因此我们需要使用 min() 函数来查询每个 player_id 的最早时间。

其次,我们需要根据 player_id 分组,因此需要使用 GROUP BY 语句。

最后,我们需要将结果按照 player_id 和 first_login 格式输出。

综上所述,正确的查询语句应该是:

SELECT player_id, min(event_date) as first_login FROM gameList GROUP BY player_id

这个语句会返回每个player_id的第一次登录的event_date。

B 选项错误是因为它查询的是 min(device_id) 而不是 event_date。

C 选项错误是因为它在 WHERE 子句中使用了 min(event_date),而 WHERE 子句通常用于过滤记录而不是聚合函数。

D 选项错误是因为它把 WHERE 子句放在了 GROUP BY 子句之前。

发表于 2023-01-27 19:42:15 回复(3)
聚合函数不能在where之前用
发表于 2024-03-20 01:25:30 回复(0)
首先,我们需要查询每个 player_id 的第一次登录时间,因此我们需要使用 min() 函数来查询每个 player_id 的最早时间。 其次,我们需要根据 player_id 分组,因此需要使用 GROUP BY 语句。 最后,我们需要将结果按照 player_id 和 first_login 格式输出。 综上所述,正确的查询语句应该是: SELECT player_id, min(event_date) as first_login FROM gameList GROUP BY player_id 这个语句会返回每个player_id的第一次登录的event_date。
发表于 2023-04-11 09:06:18 回复(0)