所以我有一个表格,结构如下:
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
答案 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函数作为日期。