我想创建一个查询,我只查找具有最早和最新registration_date的成员的详细信息。到目前为止我已经
了SELECT member_id, UPPER(name), registration_date
from db.member WHERE registration_date >=
'2012-01-01'
我不确定如何找到最小/最大但我只是在设定日期2012-01-01测试它
因此查询应该只返回两个结果 - 最小/最大
提前谢谢
答案 0 :(得分:1)
您可以在子查询中获得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 )
答案 1 :(得分:0)
从表中选择min(日期列),max(日期列);
答案 2 :(得分:0)
类似下面这样的东西,虽然有点子查询,可能会让你最接近你需要的东西。根据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;