2015-10-07 2 views
-2

я следующий table.Oquer работает нормально, но он показывает полные дублирующие record.I хотят все записи с именем, чтобы быть появляются раз, когдаSQL Query продублировать запись

CREATE TABLE Customer 
    (`Name` varchar(7), `Address` varchar(55), `City` varchar(15),`Contact` int,`timestamp` int) 
; 

INSERT INTO Customer 
    (`Name`,`Address`, `City`, `Contact`,`timestamp`) 
VALUES 
    ('Jack','New City','LA',79878458,456125), 
    ('Joseph','New Lane23','LA',87458458,794865), 
    ('Rosy','Old City','Paris',79878458,215125), 
    ('Maria','New City','LA',79878458,699125), 
    ('Jack','New City','LA',79878458,456125), 
    ('Rosy','Old City','Paris',79878458,845125), 
    ('Jack','New Main Street','New York',79878458,555525), 
    ('Jack','New City','LA',79878458,456125), 
    ('Rosy','Old City','Paris',79878458,845125), 
    ('Jack','New Main Street','New York',79878458,555525), 
    ('Joseph','Near Bank','SAn Francisco',79878458,984521) 

; 

Запрос:

select t1.* 
from customer t1 join 
(select Name, max(`timestamp`) as maxstamp 
from customer 
group by Name) xx 
on t1.Name = xx.Name 
and t1.`timestamp` = xx.maxstamp; 
+0

Вы хотите получить максимальную временную метку для отдельного пользователя? – andy

ответ

0
Use DISTINCT keyword 

select DISTINCT t1.* from customer t1 join (select Name, max(timestamp) as 
maxstamp from customer group by Name) xx on t1.Name = xx.Name 
and t1.timestamp = xx.maxstamp; 
0

В SQLite 3.7.11 или более поздней версии (Android Jelly Bean или более поздняя версия) вы можете просто использовать MAX() с GROUP BY:

SELECT Name, Address, City, Contact, MAX(timestamp) AS timestamp 
FROM Customer 
GROUP BY Name; 
Смежные вопросы