初始匹配后行中没有重复项
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
实际上我什至不确定这是否可能,但我只是试试运气,因为我尝试了一些东西,但无法真正掌握它。
我的图片 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