初始匹配后行中没有重复项

No duplicates in rows after initial match

实际上我什至不确定这是否可能,但我只是试试运气,因为我尝试了一些东西,但无法真正掌握它。

我的图片 table

我想要的: 我只想要 gpID 一次,我希望它在它第一次发生的日期。 例如,gpID 1 和 2 在 8 月 28 日由 pID 1 完成。我不希望 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

有什么方法可以去除 8 月 28 日之后所有日期的 gpID 1、2、3 吗?

编写一个子查询,获取每个 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