簡體   English   中英

查找最小和最大日期SQL

[英]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進行測試

因此,查詢只應帶回兩個結果-最小/最大

先感謝您

您可以在子查詢中獲取minmax日期,然后可以獲取結果。

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)

或者您可以使用inunion

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM