[英]Finding min and max dates SQL
我想創建一個查詢,在此查詢中,我僅找到最早和最新registration_date的成員的詳細信息。 到目前為止,我有
SELECT member_id, UPPER(name), registration_date
from db.member WHERE registration_date >=
'2012-01-01'
我不確定如何找到最小/最大,但只是在設置日期2012-01-01進行測試
因此,查詢只應帶回兩個結果-最小/最大
先感謝您
您可以在子查詢中獲取min
, max
日期,然后可以獲取結果。
select member_id, upper(name), registration_date
from db.member
cross join (
select min(registration_date) as minDate, max(registration_date) as maxDate
from db.member ) t
where registration_date in ( t.minDate, t.maxDate)
或者您可以使用in
和union
select member_id, upper(name), registration_date
from db.member
where registration_date in (
select min(registration_date)
from db.member
union
select max(registration_date) as maxDate
from db.member )
從tbl中選擇min(dateColumn),max(dateColumn);
類似於以下內容的內容雖然有點子查詢的繁重,但卻可能使您最接近所需的內容。 根據您的SQL的風格(Oracle,SQLServer,MySQL等),您可以限制IN結果集子查詢中的member_id選擇的子查詢。
select member_id, Upper(name) AS name, registration_date
from db.member
where member_id in
(
select Min(member_id)
from db.member
where registration_date =
(
select Min(registration_date)
from db.member
)
union all
select Max(member_id)
from db.member
where registration_date =
(
select Max(registration_date)
from db.member
)
)
order by registration_date desc;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.