You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL语句查询重复日期及登录人数最多的日期?

查询重复日期及登录用户最多日期的SQL方案

一、查询存在重复登录记录的日期

假设你的登录记录表名为user_logins,包含user_id(用户ID)和login_date(登录日期,格式为DATE或DATETIME),以下分两种场景给出SQL:

1. 查询有多个不同用户登录的日期

如果要找出当天有超过1个独立用户登录的日期,使用:

SELECT login_date, COUNT(DISTINCT user_id) AS user_count
FROM user_logins
GROUP BY login_date
HAVING user_count > 1
ORDER BY user_count DESC;

2. 查询存在用户重复登录的日期(同一用户当天多次登录)

如果要找出有用户在当天登录超过1次的日期,使用:

SELECT login_date
FROM (
    SELECT login_date, user_id, COUNT(*) AS login_times
    FROM user_logins
    GROUP BY login_date, user_id
    HAVING login_times > 1
) AS duplicate_logins
GROUP BY login_date;

二、找出登录用户人数最多的日期

统计每天的独立登录用户数,并返回人数最多的日期(若多个日期人数相同,会全部返回):

SELECT login_date, COUNT(DISTINCT user_id) AS max_user_count
FROM user_logins
GROUP BY login_date
HAVING COUNT(DISTINCT user_id) = (
    SELECT MAX(user_count)
    FROM (
        SELECT COUNT(DISTINCT user_id) AS user_count
        FROM user_logins
        GROUP BY login_date
    ) AS daily_counts
);

补充说明

  • 若login_date是DATETIME类型,需先转换为纯日期格式:MySQL用DATE(login_date),SQL Server/PostgreSQL用CAST(login_date AS DATE)替换语句中的login_date。
  • 若不需要统计独立用户,而是统计所有登录记录数(含同一用户多次登录),去掉COUNT中的DISTINCT即可。

内容的提问来源于stack exchange,提问作者peter parker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:35:20