选择最早和最晚的日期

时间:2011-11-10 17:56:51

标签: mysql sql

所以我有一个表格,结构如下:

in_click  first_name      create_date 
100       joe             2011-10-01 10:01
100       joe             2011-10-01 10:05
100       joe             2011-10-01 10:07
100       joe             2011-10-01 10:08
100       joe             2011-10-01 10:10
101       sara            2011-10-01 10:15
101       sara            2011-10-01 10:17
101       sara            2011-10-01 10:20
101       sara            2011-10-01 10:22

对于每个名字,我想选择第一行和最后一行。 因此它应该是名称为joe和最后日期的第一个日期 名字是乔的地方。有点像if-else声明,但是 我只是不确定如何在MySQL中获取该信息。

帮助?!

我正在运行以下查询以获取所有内容:

SELECT t.in_click_id, t.keyword, c.lead_id, c.first_name, c.last_name, 
ls.create_date, ls.discriminator, l.affiliate_id 
FROM lead_status AS ls
INNER JOIN leads AS l ON l.id = ls.lead_id 
INNER JOIN tracker AS t ON l.in_click_id = t.in_click_id
INNER JOIN contacts AS c ON ls.lead_id = c.lead_id 
WHERE l.affiliate_id NOT IN('1002','1003')
AND ls.create_date BETWEEN '2011-11-09' AND '2011-11-10';

这就是我想要的:

in_click  first_name      create_date 
100       joe             2011-10-01 10:01
100       joe             2011-10-01 10:10
101       sara            2011-10-01 10:15
101       sara            2011-10-01 10:22

3 个答案:

答案 0 :(得分:6)

这适用于您提供的数据,不能说它在MySQL中有效,但它可以在SQL Server中使用。

select t.in_click, 
    t.first_name,
    t.create_date
from tracker t
where 
    t.create_date = (select min(create_date) from tracker where in_click = t.in_click)
    or t.create_date = (select max(create_date) from tracker where in_click = t.in_click)

答案 1 :(得分:0)

答案 2 :(得分:0)

首先和最后一个是指表中最早的日期和最新日期吗?如果是这样,您将需要查询并使用MAX和MIN函数作为日期。