我正在嘗試獲取一些帶有最新時間戳的資料。資料集具有不同的時間戳,我需要使用它們的時間戳來獲取。例如:
| ID | testcase_id | 用戶 | 時間戳 |
|---|---|---|---|
| 1 | 2 | 美國廣播公司 | 2013-01-13 15:00:00 |
| 2 | 2 | 鉛 | 2013-01-13 15:05:00 |
| 3 | 4 | 滴滴 | 2013-01-13 15:05:00 |
| 4 | 4 | 美國廣播公司 | 2010-01-10 16:04:00 |
因為abbc需要獲得最新的第 1 行timestamp(2013-01-13 15:00:00),我需要第 2pbbb (2013-01-13 15:05:00)行和第 3 行dddd (2013-01-13 15:05:00)。我有后端每個用戶的時間戳資料,只需要一個適當的查詢來使用時間戳獲取所有這些行。
注意:可能有多個用戶具有相同的時間戳,例如 - 如果 10 個用戶具有與 abbc 相同的時間戳,我將需要所有這些用戶。
uj5u.com熱心網友回復:
JPQL 對它允許的語法很挑剔。您可以嘗試在此處使用相關子查詢:
select e
from your_entity e
where e.timestamp = (select max(f.timestamp)
from your_entity f where f.user = e.user)
uj5u.com熱心網友回復:
試試 CTE 決議函式 row_number()
with t1 as (
select id, testcase_id, user, timestamp,
row_number() over (partition by user order by timestamp desc) rno
from your_table)
select select id, testcase_id, user, timestamp
from t1
where rno = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/345834.html
上一篇:JPA:如何使用@NamedQuery指定來自不同DB2模式的表。Schema.Table不能是FROM子句的第一個宣告
