66import java .time .LocalDateTime ;
77
88public interface WebHookRepository extends JpaRepository <User , Long > {
9- @ Query ("SELECT COUNT(u ) FROM User u WHERE u.createdDate BETWEEN :start AND :end " )
10- Integer countNewUsersOnDate (LocalDateTime start , LocalDateTime end );
9+ @ Query ("SELECT COUNT(* ) FROM User u WHERE DATE_FORMAT( u.createdDate, '%Y%m%d') = DATE_FORMAT(:date, '%Y%m%d') " )
10+ Integer countNewUsersOnDate (LocalDateTime date );
1111
12- @ Query ("SELECT COUNT(u ) FROM User u WHERE u.createdDate <= :end or u.createdDate is null" )
13- Integer countAllUsersBefore (LocalDateTime end );
12+ @ Query ("SELECT COUNT(* ) FROM User u WHERE DATE_FORMAT( u.createdDate, '%Y%m%d') <= DATE_FORMAT(:date, '%Y%m%d') or u.createdDate is null" )
13+ Integer countAllUsersBefore (LocalDateTime date );
1414
15- @ Query ("SELECT COUNT(u ) FROM User u WHERE u.lastLoginDate BETWEEN :start AND :end " )
16- Integer countLoginUsersOnDate (LocalDateTime start , LocalDateTime end );
15+ @ Query ("SELECT COUNT(* ) FROM User u WHERE DATE_FORMAT( u.lastLoginDate, '%Y%m%d') = DATE_FORMAT(:date, '%Y%m%d') " )
16+ Integer countLoginUsersOnDate (LocalDateTime date );
1717
18- @ Query ("SELECT COUNT(e) FROM Expense e WHERE e.createdDate BETWEEN :start AND :end group by e.userId" )
19- Integer countExpenseSubmittersOnDate (LocalDateTime start , LocalDateTime end );
18+ @ Query (value =
19+ "SELECT COUNT(*)\n "
20+ + "FROM (\n "
21+ + " SELECT COUNT(*)\n "
22+ + " FROM Expense e\n "
23+ + " WHERE DATE_FORMAT(e.created_date, '%Y%m%d') = DATE_FORMAT(:date, '%Y%m%d')\n "
24+ + " GROUP BY e.user_id\n "
25+ + " ) a"
26+ , nativeQuery = true )
27+ Integer countExpenseSubmittersOnDate (LocalDateTime date );
2028
2129 // @Query("SELECT COUNT(e) FROM User e WHERE e.isNoticeEnable = TRUE")
22- @ Query ("SELECT COUNT(f ) FROM FCMToken f" )
30+ @ Query ("SELECT COUNT(* ) FROM FCMToken f" )
2331 Integer countByNoticeEnableTrueUser ();
2432
2533 @ Query (value =
26- "SELECT COUNT(*)\n "
27- + "FROM (\n "
28- + " SELECT user_id\n "
29- + " FROM (\n "
30- + " SELECT \n "
31- + " user_id,\n "
32- + " DATE(created_date) AS log_date,\n "
33- + " ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY DATE(created_date)) \n "
34- + " - DENSE_RANK() OVER (PARTITION BY user_id ORDER BY DATE(created_date)) AS grp\n "
35- + " FROM expense\n "
36- + " GROUP BY user_id, DATE(created_date)\n "
37- + " ) a\n "
38- + " GROUP BY user_id, grp\n "
39- + " HAVING COUNT(*) >= :day) b\n "
40- + "GROUP BY user_id" ,
41- nativeQuery = true )
42- Integer countUsersWithStreak (int day );
34+ "SELECT COUNT(*)\n "
35+ + "FROM (\n "
36+ + " SELECT COUNT(*)\n "
37+ + " FROM (\n "
38+ + " SELECT e.user_id, e.created_date\n "
39+ + " FROM Expense e\n "
40+ + " WHERE DATE_FORMAT(e.created_date, '%Y%m%d') BETWEEN DATE_FORMAT(:date, '%Y%m%d') - INTERVAL :day DAY AND DATE_FORMAT(:date, '%Y%m%d')\n "
41+ + " GROUP BY e.user_id, e.created_date\n "
42+ + " ) a\n "
43+ + " GROUP BY a.user_id\n "
44+ + " HAVING COUNT(*) = :day + 1\n "
45+ + " ) b"
46+ , nativeQuery = true )
47+ Integer countUsersWithStreak (LocalDateTime date , int day );
4348}
0 commit comments