Page History
...
No Format |
---|
@Query(value="SELECT address,age,name,phoneNbr,sex FROM address " + "UNION " + "SELECT address,age,name,phoneNbr,sex FROM address2 ", nativeQuery = true) List<?> makeUniOn(); |
SQL 윈도우함수를 대체하는 랭킹처리
장점:SQL문이 지원하지 않을시 특수한 기능구현이 가능하고 어플리케이션에게 연산부담을 시킬수있다.
단점:무분별한 사용은 커스텀한 로직을 늘리는것이니 커스텀한 로직이 늘어나 관리가 안될수 있으니 , 효율적인 SQL문 작성법부터 학습하자~알아보자
Code Block | ||||
---|---|---|---|---|
| ||||
public void RankTest() { int[] score = {Integer.MIN_VALUE}; int[] no = {0}; int[] rank = {0}; List<AddressAgeRank> ageRankList = addressRepo.findByAgeBetween(10, 90).stream() .sorted((a,b) -> b.getAge() - a.getAge() ) .map(p -> { ++no[0]; if (score[0] != p.getAge()) rank[0] = no[0]; return new AddressAgeRank(p.getName(),score[0] = p.getAge(), rank[0] ); }) .collect(Collectors.toList()); ageRankList.forEach(item ->{ System.out.println(item.toString()); }); } |
...