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

问题描述 投票:-1回答:1

我实际上甚至不确定是否有可能,但是我只是在尝试运气,因为我已经尝试了一些东西,但并不能真正掌握它。

我的桌子的图像

enter image description here

我想要的是:我想要一次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?

mysql sql duplicates subquery distinct
1个回答
0
投票

写一个子查询,该子查询获取每个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
© www.soinside.com 2019 - 2024. All rights reserved.