Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Login terakhir MYSQL dan jumlah login dalam 3 bulan terakhir

Pertama selesaikan setiap masalah secara terpisah:

SELECT A.UserID, MAX(TIME) AS LastLogin  
FROM UserMaster A  
LEFT JOIN UserWebActivity B
ON A.UserID = B.UserID  
AND Activity = 'Login'  
GROUP BY A.UserID

SELECT A.UserID, COUNT(Activity) AS Logins
FROM UserMaster A  
LEFT JOIN UserWebActivity B ON A.UserID = B.UserID  
AND Activity = 'Login'  
AND TIME BETWEEN (NOW() - INTERVAL 3 MONTH) AND NOW( )  
GROUP BY A.UserID

Uji secara terpisah untuk memastikan bahwa setiap kueri ini berfungsi seperti yang Anda inginkan, dan sesuaikan jika perlu.

Kemudian ketika Anda senang keduanya bekerja, gabungkan hasilnya bersama:

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

Ini akan memungkinkan MySQL untuk memanfaatkan indeks dengan sebaik-baiknya untuk kueri yang berbeda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara mendapatkan ukuran tabel mysql dalam GB

  2. Mysql FIND_IN_SET di mana klausa

  3. C# dengan parameter MySQL INSERT

  4. apa cara terbaik untuk melakukan internasionalisasi di php?

  5. Aktivitas MySQL yang berlebihan