Нет повторов в строках после начального совпадения - PullRequest
0 голосов
/ 01 октября 2019

На самом деле я даже не уверен, возможно ли это, но я просто пытаюсь испытать свою удачу, поскольку немного пробовал что-то, но не могу понять это.

Изображениемоя таблица

enter image description here

Что я хочу: я хочу один раз gpID, и я хочу, чтобы он был на дату, когда это произошло первым. Например, gpID 1 и 2 были закончены pID 1 28 августа. Я не хочу, чтобы gpID 1 и 2 были включены в результат для других дат. Я попробовал DISTINCT, который, по крайней мере, избавляет от дубликатов в каждом ряду, однако это не решит мою проблему.

SELECT
    GROUP_CONCAT( DISTINCT gpID) AS gpID,
    pID,
    score,
    FROM_UNIXTIME(DATE, '%Y %M %D') AS DATE
FROM
    points
where pID = 1
group by FROM_UNIXTIME(date, '%Y %M %D')

, что приводит к


gpID    pID         score   DATE    
1,2,3     1         125220  2019 August 28th    
1,2,3,4   1         30000   2019 September 16th

Есть ли способ избавиться от gpID 1,2,3 для всех дат после 28 августа?

1 Ответ

0 голосов
/ 01 октября 2019

Напишите подзапрос, который получает первую дату для каждого gpID. Затем сгруппируйте их по дате.

SELECT DATE(FROM_UNIXTIME(mindate)) AS date , GROUP_CONCAT(gpID) AS gpID
FROM (
    SELECT gpID, MIN(date) AS mindate
    FROM points
    GROUP BY gpID
) AS x
GROUP BY date
...