我实际上甚至不确定是否有可能,但是我只是在尝试运气,因为我已经尝试了一些东西,但并不能真正掌握它。
我的桌子的图像
我想要的是:我想要一次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