簡體   English   中英

每個組中最大的n組

[英]greatest-n-per-group in hibernate

休眠狀態下是否有任何方法可以從小組中獲得最佳記錄。 在我的表中,我有三列(error_id,transaction_id,phone),我想在transaction_id上應用order by子句,然后在phone的基礎上進行分組,然后從每個組中獲取最高記錄。

有關此類型或查詢的任何建議。

我從搜索中得到了答案。

String msisdnQueryString = "SELECT DISTINCT table.phone FROM TABLE_NAME table";
Query msisdnQueryObject = session.createQuery(msisdnQueryString);
List msisdnList = msisdnQueryObject.list();

List<Long> transactionList = new ArrayList<Long>();
for(Object object : msisdnList){
    Long msisdn = Long.parseLong(object.toString());
    String transactionQueryString = "SELECT table.transactionId FROM TABLE_NAME table WHERE table.phone = "+msisdn+" ORDER BY table.transactionId DESC";
    Query transactionQueryObject = session.createQuery(transactionQueryString);
    transactionQueryObject.setFirstResult(0);
    transactionQueryObject.setMaxResults(1);
    List transactions =transactionQueryObject.list();
    if(transactions.size() > 0){
    transactionList.add((Long)transactions.get(0));
    }
}

這是一個漫長的過程,但是正在奏效。 如果有人知道獲取此類記錄的更好方法,請發表您的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM