MIN / MAX работает в JPA Spring Data с Amazon Aurora DB (запрос наибольшего числа групп)

0

У меня есть данные весны весны запроса, я хочу знать, можно ли в 1 запросе также получить updateDate, откуда происходит минимальная цена

@Query("select min (hp.price) from HotelPrice hp where hp.hotel = ?1 and hp.updateDate > ?2 ")
float getMinPrice (Hotel hotel, Date date);
  • 1
    С точки зрения SQL, это тривиальный запрос " наибольшие числа групп" , который зависит от вашей СУБД. С весенней точки зрения, вы могли бы , вероятно , сделать что - то вроде SomeCustomType getFirstCustomTypeByHotelIdAndUpdateDateGreaterThanOrderByPriceDesc(Integer hotelId, LocalDate date) (что - то подобное , кажется , не работает для меня - никакой подсказки , если вы можете использовать полный POJO по запросу), где SomeCustomType имеет BigDecimal поле цены (не используйте двоичные числа с плавающей запятой для денежных типов, все становится странно) и LocalDate обновления LocalDate (забудьте, что java.util.Date существует, пожалуйста).
Теги:
jpa
spring-data-jpa
spring-data
greatest-n-per-group

1 ответ

0
Лучший ответ
SELECT  hp.price, 
        hp.updateDate
    FROM  HotelPrice AS hp
    WHERE  hp.hotel = ?1
      AND  hp.updateDate > ?2 
    ORDER BY hp.price ASC
    LIMIT 1

(Я оставлю это для вас, чтобы запустить это в контексте Spring.)

Это на самом деле проще, чем "наибольшее-n-на-группу" или даже "групповой максимум". Просто закажите вывод (ORDER BY) и отберите первую строку (LIMIT 1).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню