代码之家  ›  专栏  ›  技术社区  ›  Ian McIntyre Silber

SQL唯一查询-需要帮助

  •  1
  • Ian McIntyre Silber  · 技术社区  · 15 年前

    需要一些关于基本SQL查询的帮助。我正在尝试选择与特定的WHERE子句匹配的唯一记录数。

    本质上,我在寻找在X和Y日期之间登录的唯一用户的数量。如果一个用户在这些日期之间登录了不止一次,那么它只需要计数一次。

    数据如下:

    id | user_id | lastLogin
    1  | 100     | 2010-06-23 10:00:00
    2  | 101     | 2010-06-23 10:05:00
    3  | 100     | 2010-06-23 11:00:00 
    

    谢谢!

    4 回复  |  直到 15 年前
        1
  •  1
  •   Dan Williams    15 年前

    这是另一个选择

    SELECT COUNT(user_id), user_id, MAX(lastLogin)
    FROM login_table
    WHERE lastlogin BETWEEN @start AND @end
    GROUP BY user_id
    

    这将给您一个登录计数,以及最后一次登录的日期。

        2
  •  1
  •   user359040    15 年前

    尝试:

    select count(distinct user_id)
    from login_table
    where lastlogin between @startdatetime and @enddatetime
    
        3
  •  0
  •   Paul Mendoza    15 年前

    使用distinct SQL运算符。

    例子

    select distinct user_id from UsersLoggedIn where lastLogin >= '2010-06-23 10:00:00' and lastLogin <= '2010-06-23 11:00:00'
    

    您可以用一个计数来计算用户的计数。

    select count(*) from (select distinct user_id from UsersLoggedIn where lastLogin >= '2010-06-23 10:00:00' and lastLogin <= '2010-06-23 11:00:00') x
    
        4
  •  0
  •   nico    15 年前

    你可以做一些像

    SELECT COUNT(DISTINCT user_id) FROM table WHERE lastLogin BETWEEN ....