我有兩個這樣的表:
OBJECT_VIEW 表:
| view_id | object_id | 物件名 |
|---|---|---|
| 1423 | 12 | ob1 |
| 1423 | 15 | ob2 |
| 1423 | 17 | ob3 |
| 2499 | 15 | ob2 |
OBJECT_EXEC 表:
| object_id | 執行時間處理時間 |
|---|---|
| 12 | 22 年 10 月 16 日 00:01:00 |
| 12 | 22 年 10 月 18 日 00:07:00 |
| 15 | 22 年 10 月 14 日 00:01:00 |
| 17 | 22 年 10 月 11 日 00:01:00 |
| 17 | 22 年 10 月 13 日 00:01:00 |
| 12 | 22 年 10 月 15 日 00:01:00 |
| 15 | 22 年 10 月 13 日 00:01:00 |
| 12 | 22 年 10 月 16 日 00:01:00 |
| 17 | 22 年 10 月 17 日 00:01:00 |
我想得到一個結果,我看到視圖中存在的每個物件的最新執行。(view_id - object_id 是多對多的關系。)因此,結果表中只有一個 object_id 的最大值為 execution_time。這也需要通過 view_id 過濾,所以我可以檢查每個視圖的最大執行時間。
像這樣:
| object_id | 物件名 | 執行時間處理時間 |
|---|---|---|
| 12 | ob1 | 22 年 10 月 18 日 00:07:00 |
| 17 | ob3 | 22 年 10 月 17 日 00:01:00 |
| 15 | ob2 | 22 年 10 月 14 日 00:01:00 |
到目前為止,我已經嘗試使用 MAX() 和 group by,但我的輸出并未僅顯示每個 object_id 的 max_execution。它顯示多個相同的ID。我錯過了什么?
SELECT ov.object_id, ov.object_name, MAX(oe.execution_time) AS "LAST_EXECUTION"
FROM OBJECT_EXEC oe
JOIN OBJECT_VIEW ov
ON oe.object_id = ov.object_id
WHERE ov.view_id = 1423
GROUP BY oe.execution_time, ov.object_id, ov.object_name;
uj5u.com熱心網友回復:
您不應execution_time在GROUP BY子句中包含:
SELECT ov.object_id, ov.object_name, MAX(oe.execution_time) AS "LAST_EXECUTION"
FROM OBJECT_EXEC oe
INNER JOIN OBJECT_VIEW ov
ON oe.object_id = ov.object_id
WHERE ov.view_id = 1423
GROUP BY ov.object_id, ov.object_name;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/517914.html
標籤:sql甲骨文
上一篇:一個表的總和值取決于另一個表
