我有一个表transactions,其中所有事务的详细信息将存储如下,
+----+-------------+---------------------+---------------------+
| id | merchant_id | amount | requested_timestamp |
+----+-------------+---------------------+---------------------+
| 1 | 5 | 10 | 2020-06-02 01:47:47 |
| 2 | 5 | 20 | 2020-06-02 05:00:14 |
| 3 | 744900 | 30 | 2020-06-02 05:00:27 |
| 4 | 154427 | 100 | 2020-06-02 05:01:03 |
| 5 | 504968 | 15 | 2020-06-02 05:01:26 |
| 6 | 75703 | 20 | 2020-06-02 05:01:31 |
| 7 | 732228 | 50 | 2020-06-02 05:01:59 |
| 8 | 506342 | 25 | 2020-06-02 05:02:17 |
| 9 | 504968 | 40 | 2020-06-02 05:02:36 |
| 10 | 732228 | 30 | 2020-06-02 05:02:50 |
+----+-------------+---------------------+---------------------+
我想找到最大时间戳的每一个商人在一个命中像传递清单的商品的查询。我试过使用spring数据,如下所示
List<Transactions> findTop1ByMerchantIdInOrderByIdAsc(List<Integer> merchantIds);
但它没有给max时间戳。
我试了如下
@Query("select merchantId,max(requestedTimestamp) from Transactions where merchantId in ?1")
List<Object[]> getLastTxnsOfAllMerchants(List<Integer> merchantIds);
这是个例外。
即使使用本机查询,我的问题也将解决如下
@Query(nativeQuery=true,value="select merchant_id,max(requested_timestamp) from transactions where merchant_id in ?1")
List<Object[]> getLastTxnsOfAllMerchants(List<Integer> merchantIds);
这也有例外
请帮帮我谢谢。
1条答案
按热度按时间fbcarpbf1#
你可以像这样运行查询
或者如果你想要特定的商人
希望这有帮助:)