MYSQL last login and number of logins in last 3 months

后端 未结 3 1545
臣服心动
臣服心动 2021-01-14 14:02

I\'m trying to write a query to join a user table to an activity logging table and return the following for each user:

A) The time they last logged in.

B)

3条回答
  •  孤街浪徒
    2021-01-14 14:12

    You can use a CASE statement in your COUNT:

    SELECT A.UserID,
      COUNT(
        CASE WHEN TIME BETWEEN DATE_SUB( NOW( ) , INTERVAL 3 MONTH ) AND NOW( )
        THEN Activity
      END ) AS Logins,
      MAX( TIME ) AS LastLogin  
    FROM UserMaster A  
    LEFT JOIN UserWebActivity B ON A.UserID = B.UserID  
    AND Activity =  'Login'  
    GROUP BY A.UserID
    

    This solution however will be less efficient than @MarkByers if you have a large amount of data.

提交回复
热议问题