diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index be6e8a0..25ec2f9 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -9,31 +9,54 @@ import java.util.List; public interface UserRepository extends CrudRepository { User findByEmail(String email); - @Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte\n" + +// @Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte\n" + +// "FROM user u,\n" + +// " user_info ui,\n" + +// " user_roles ur\n" + +// "WHERE u.id = ui.user_id\n" + +// "AND u.id = ur.user_id\n" + +// "order by ranking_points_sum DESC\n" + +// "LIMIT 10;", nativeQuery = true) +// List getRankingList(); + + @Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte, email Email\n" + "FROM user u,\n" + " user_info ui,\n" + " user_roles ur\n" + "WHERE u.id = ui.user_id\n" + - "AND u.id = ur.user_id\n" + - "order by ranking_points_sum DESC\n" + + " AND u.id = ur.user_id\n" + + "order by ranking_points_sum DESC, Email\n" + "LIMIT 10;", nativeQuery = true) List getRankingList(); + +// @Query(value = "SELECT Rang\n" + +// "From (\n" + +// "\n" + +// "SELECT ROW_NUMBER() over(order by INR.Ranglistenpunkte DESC) AS Rang, Name\n" + +// "FROM (\n" + +// " SELECT DISTINCT u.Email AS Name,\n" + +// " ui.ranking_points_sum AS Ranglistenpunkte\n" + +// " FROM user u,\n" + +// " user_info ui,\n" + +// " user_roles ur\n" + +// " WHERE u.id = ui.user_id\n" + +// " AND u.id = ur.user_id\n" + +// " order by ranking_points_sum DESC) as INR) as RN\n" + +// "WHERE Name = ?1", nativeQuery = true) +// int getRankingPlaceFromUser(String username); + @Query(value = "SELECT Rang\n" + - "From (\n" + - "\n" + - "SELECT ROW_NUMBER() over(order by INR.Ranglistenpunkte DESC) AS Rang, Name\n" + - "FROM (\n" + - " SELECT DISTINCT u.Email AS Name,\n" + - " ui.ranking_points_sum AS Ranglistenpunkte\n" + - " FROM user u,\n" + - " user_info ui,\n" + - " user_roles ur\n" + - " WHERE u.id = ui.user_id\n" + - " AND u.id = ur.user_id\n" + - " order by ranking_points_sum DESC) as INR) as RN\n" + - "WHERE Name = ?1", nativeQuery = true) - int getRankingPlaceFromUser(String username); + "From (SELECT ROW_NUMBER() over(order by INR.Ranglistenpunkte DESC, Email) AS Rang, Email\n" + + " FROM (SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte, email Email\n" + + " FROM user u,\n" + + " user_info ui,\n" + + " user_roles ur\n" + + " WHERE u.id = ui.user_id\n" + + " AND u.id = ur.user_id\n" + + " order by ranking_points_sum DESC, Email) as INR) as RN\n" + + "WHERE Email = ?1", nativeQuery = true) + int getRankingPlaceFromUser(String username); @Query(value = "SELECT DISTINCT t.name AS teamname, SUM(ui.ranking_points_sum) AS Ranglistenpunkte\n" + "FROM user u,\n" +