我想回傳最大的 updated_date 時間戳。我有這個代碼:
select
case when max(t1.updated_date) > max(t2.updated_date)
then t1.updated_date else t2.updated_date
end as MaxDate
from table1 t1
inner join table2 t2
on t1.id = t2.id
where t1.id = '5'
group by t1.updated_date, t2.updated_date
當我運行此代碼時,我的結果集是 t1 和 t2 的最大更新日期:
| 最大日期 |
|---|
| 2021-12-10 8:00:00 |
| 2021-12-20 23:00:00 |
為什么它同時回傳?我如何讓它只回傳 2021-12-20 23:00:00 (即比較兩列時的最大時間戳)?
uj5u.com熱心網友回復:
我認為您只需要在這里進行限制查詢。由于 Postgres 支持標量GREATEST函式,因此您不需要龐大的CASE運算式。考慮這個版本:
SELECT GREATEST(t1.updated_date, t2.updated_date) AS max_updated_date
FROM table1 t1
INNER JOIN table2 t2
ON t1.id = t2.id
WHERE t1.id = '5'
ORDER BY 1 DESC
LIMIT 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395776.html
標籤:sql PostgreSQL的 案件
上一篇:查詢的執行計劃
