TypeORM: извлечение последнего значения с помощью предложения groupBy

#mysql #group-by #greatest-n-per-group #typeorm

#mysql #группировать по #наибольшее число пользователей на группу #typeorm

Вопрос:

Это мои записи в таблице:

 id   bal    total  trans_date
1    200    220    2020-11-11
2    220    250    2020-11-11
3    250    226    2020-11-11
4    226    280    2020-11-10
  

Теперь я упорядочиваю и группирую данные по дате транзакции

Если я хочу извлечь newest value of total , как я могу это сделать?

Пример. Я хочу получить total: 226 для date 2020-11-11

(Когда даты транзакций совпадают, я использую ID для идентификации старых и новых значений)

 await connection.manager.createQueryBuilder(RefTransaction, 'rt')
                .addSelect('rt.bal', 'balance')
                .addSelect('rt.total', 'total')
                .orderBy("rt.transDate")
                .groupBy('rt.transDate')
                .getRawMany()
  

Текущий результат :

 bal  total  trans_date
200  220    2020-11-11
226  280    2020-11-10
  

Ожидаемый результат :

 bal  total  trans_date
200  226    2020-11-11
226  280    2020-11-10
  

Как я должен изменить свой запрос для достижения значений?

Заранее спасибо.

Комментарии:

1. не уверен, что я следую вашему ожидаемому результату? 200 - 226 - 2020-11-11 ? почему 200 и почему 226 ? не так ли 250 250 ?

2. Мне не нужны МАКСИМАЛЬНЫЕ значения @Rippo, мне нужно значение из последней записи

3. Все еще неясно, @Keval почему bal 200? 200 — это либо идентификатор первой строки = 1, либо наименьшее значение? Вы сделали 226 понятным, поскольку это последняя запись Id = 3