這是一個有趣的也許是很好的一般問題。我如何找到特定表中與ID相對應的最小時間值。很難沒有一個例子來解釋,因此在這裏是一個:SQL - 在表格字段和聯接字段中查找最小值
- 表A已經字段ID,stage1_date,stage2_date
- 表B1具有字段A_ID(FK到A.ID),日期
- 表B2具有字段A_ID(FK到A.ID),日期
我想找到A. A.stage1_date,A.stage2_date,B1.date,B2.date中每個ID的最小值
任何想法的人?
這是一個有趣的也許是很好的一般問題。我如何找到特定表中與ID相對應的最小時間值。很難沒有一個例子來解釋,因此在這裏是一個:SQL - 在表格字段和聯接字段中查找最小值
我想找到A. A.stage1_date,A.stage2_date,B1.date,B2.date中每個ID的最小值
任何想法的人?
不幸的是,least()
函數返回NULL
如果它的任何參數是NULL
。而且,如果其中一個B表缺少A_ID
,您可能希望使用左外連接來達到此目的。
這裏是一個更安全的方法:
select id, min(thedate) as mindate
from (select id, stage1_date as thedate from a union all
select id, stage2_date from a union all
select a_id, date from b1 union all
select a_id, date from b2
) t
group by id;
可以使用LEAST()
函數表達式的列表返回最小的值:
SELECT
LEAST(A.stage1_date, A.stage2_date, B1.date, B2.date)
FROM
A JOIN B1 ON A.ID = B1.A_ID
JOIN B2 ON A.ID = B2.A_ID
什麼平臺,這是對? – Hogan
這實際上是在vertica – SS781