Выберите самые ранние и самые поздние даты - PullRequest
2 голосов
/ 10 ноября 2011

Итак, у меня есть таблица, которая структурирована в следующем формате:

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

Для каждого имени я хочу выбрать первую и последнюю строки. Так что это должно быть первое свидание с именем Джо и последняя дата где первое имя Джо. Вроде как если бы еще заявление, но Я просто не уверен, как получить эту информацию в MySQL.

Помощь?! * * 1006

Я запускаю следующий запрос, чтобы просто получить все:

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 ]

6 голосов
/ 10 ноября 2011

Это работает с данными, которые вы предоставили, не могу сказать, что это будет работать в 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)
0 голосов
/ 10 ноября 2011

Под первым и последним вы подразумеваете самую раннюю дату и самую позднюю дату в таблице? Если это так, вам нужно запросить и использовать функции MAX и MIN для дат.

0 голосов
/ 10 ноября 2011

Использовали ли вы функции минимума и максимума?

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_min

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...