如何编写此sql语句? id登录\名称登录\时间 1 aa 2002-09-19 2 bb 2002-12-19 3 bb 2002-12-30

如何编写此sql语句? id登录\名称登录\时间 1 aa 2002-09-19 2 bb 2002-12-19 3 bb 2002-12-30,sql,Sql,如何编写一条SQL语句来查找登录次数最多的用户的最新登录时间。例如,在此示例数据中,用户“bb”已登录两次,其最新登录时间为“2002-12-30” id login_name login_time 1 aa 2002-09-19 2 bb 2002-12-19 3 bb 2002-12-30 挑选 身份证件 最大(`login\u time`)作为`login\u time`` 从表\u名称 按登录名分组 这就是你想要的吗??如

如何编写一条SQL语句来查找登录次数最多的用户的最新登录时间。例如,在此示例数据中,用户“bb”已登录两次,其最新登录时间为“2002-12-30”

id login_name login_time 1 aa 2002-09-19 2 bb 2002-12-19 3 bb 2002-12-30

挑选
身份证件
最大(`login\u time`)作为`login\u time``
从表\u名称
按登录名分组

这就是你想要的吗??如果不是的话,你能再解释一下吗


SELECT

id,
MAX(`login_time`) AS `login_time`

FROM table_name

GROUP BY login_name

挑选
身份证件
最大(`login\u time`)作为`login\u time``
从表\u名称
按登录名分组

这就是你想要的吗??如果不是的话,你能再解释一下吗


SELECT

id,
MAX(`login_time`) AS `login_time`

FROM table_name

GROUP BY login_name
然后,根据您使用的sql server,您可以为MS sql server添加
limit 1
(对于mysql),或者为MS sql server添加
top 1
,或者为其他服务器添加其他内容,以仅获取第一条记录


然后,根据您正在使用的sql server,您可以为MS sql server添加
limit 1
(对于mysql),或
top 1
,或为其他服务器添加其他内容,以仅获取第一条记录。

以下内容适用于Oracle数据库:

SELECT login_name, COUNT(*) as num_logins, max(login_time) as last_login_time
FROM table_name ORDER BY num_logins DESC 

共享和享受。

以下内容适用于Oracle数据库:

SELECT login_name, COUNT(*) as num_logins, max(login_time) as last_login_time
FROM table_name ORDER BY num_logins DESC 
分享和享受。

以下是简单的方法:

SELECT MAX(LOGIN_TIME)
  FROM LOGIN_TABLE
  WHERE LOGIN_NAME = (SELECT LOGIN_NAME
                        FROM (SELECT LOGIN_NAME, COUNT(*) AS LOGIN_COUNT
                                FROM LOGIN_TABLE
                                GROUP BY LOGIN_NAME
                                ORDER BY LOGIN_COUNT DESC)
                        WHERE ROWNUM = 1)
顶行显示登录次数最多的
登录名

这是一条艰难的道路:

SELECT
    t.login_name
    ,COUNT(t.id) AS login_counts
    ,MAX(t.login_time) AS latest_login_time
FROM this_table AS t
GROUP BY t.login_name
ORDER BY login_counts DESC, login_name
;
这会给你一个名字和日期,就是这样,尽管它没有考虑到可能有超过一个名字的最大登录次数。我将让你自己来解决这个问题。

这里有一个简单的方法:

SELECT MAX(LOGIN_TIME)
  FROM LOGIN_TABLE
  WHERE LOGIN_NAME = (SELECT LOGIN_NAME
                        FROM (SELECT LOGIN_NAME, COUNT(*) AS LOGIN_COUNT
                                FROM LOGIN_TABLE
                                GROUP BY LOGIN_NAME
                                ORDER BY LOGIN_COUNT DESC)
                        WHERE ROWNUM = 1)
顶行显示登录次数最多的
登录名

这是一条艰难的道路:

SELECT
    t.login_name
    ,COUNT(t.id) AS login_counts
    ,MAX(t.login_time) AS latest_login_time
FROM this_table AS t
GROUP BY t.login_name
ORDER BY login_counts DESC, login_name
;

这会给你一个名字和日期,就是这样,尽管它没有考虑到可能有超过一个名字的最大登录次数。我将让您自己去弄清楚。

您所说的“最大登录时间”是什么意思?什么SQL变体?对于mysql、t-sql等,答案可能会有所不同。最大登录次数可能是多少?您希望如何处理关系,比如说用户“aa”是否有其他记录,例如…家庭作业,如果不依赖于特定数据库?您所说的“最大登录次数”是什么意思?什么sql变体?对于mysql、t-sql等,答案可能会有所不同。最大登录次数可能是多少?你想如何处理关系,比如说,如果用户“aa”有其他记录,例如……家庭作业,如果不依赖于特定的数据库?也许你应该详细说明它的错误,这样海报和其他人可能会更好地了解你想要得到什么。@alex07-我认为你需要一个登录名为
的组。也许你应该详细说明它的错误,这样海报和其他人可能会有一个更好的答案更好地了解您想要得到什么。@alex07-我想您需要一个登录名为
的组。