2014-03-26 5 views
0

У меня есть таблица информации о клиенте, которую мне нужно вытащить из разных стран, но только там, где отметка времени новее последней проверки. Отдельные значения также должны отличаться от всех старых проверок.Выберите только новые дублирующие значения

Таблица:

Name   City   State   created_at 
Dan   Springfield  Ohio   2014-03-25 17:44:19.000000 
Jon   Philadelphia Pennsylvania 2014-03-25 17:44:19.000000 
Sue   Hollywood  California  2014-03-25 17:44:19.000000 
Ann   Oxford   Ohio   2014-03-25 19:44:19.000000 
Al   Chicago   Illinois  2014-03-25 19:44:19.000000 

Так сказать, я уже побежал проверять один раз и нашел Огайо, Пенсильвании и Калифорнии. Затем были добавлены две новые записи. В следующий раз, когда я запустил свой чек, мне нужно снова найти только Иллинойс, а не Огайо.

Я попробовал это,

SELECT State, created_at FROM (SELECT DISTINCT State, created_at FROM clients) as temp WHERE created_at > '2014-03-25 17:44:19.000000' ORDER BY State ASC 

После запуска этого я понял, что мой мыслительный процесс был неправ на этом, как я все еще получаю дубликаты.

Я думаю, что мне нужно это, найти все новые записи

Select State FROM clients WHERE created_at > '2014-03-25 17:44:19.000000' 

затем на этом результате,

Select State FROM результата WHERE государство не в (клиентов ГДЕ created_at < «2014- 03-25 17: 44: 19.000000 ')

Но я не знаю, как это сделать.

Спасибо за любую помощь.

ответ

0

Если что-то было создано с момента последней проверки, то min(created_at) после последней даты проверки. Следовательно, следующее должно делать то, что вы хотите:

select c.state 
from clients c 
group by state 
having min(created_at) >= @yourlastcheck; 
+0

Да, это сработало отлично. Спасибо. Любой шанс вы можете объяснить часть c? Я не понимаю, что делает «c». – NarayanJr

+0

@ пользователь3462055. , , 'c' называется« псевдоним таблицы ». Это аббревиатура для имени таблицы. В этом контексте это необязательно, но иногда (особенно для самосоединений) это может быть необходимо. –

Смежные вопросы