【发布时间】:2014-02-06 11:45:07
【问题描述】:
我遇到了“postgres”SQL 问题。
我有一张像这样的桌子
id 名称级别时间戳 1 皮特 1 100 2 皮特 1 200 3 皮特 1 500 4 皮特 5 900 7 皮特 5 1000 9 皮特 5 1200 15 皮特 2 700现在我想删除我不需要的行。我只想现在他获得新级别的第一行和他拥有此级别的最后一行。
id 名称级别时间戳 1 皮特 1 100 3 皮特 1 500 15 皮特 2 700 4 皮特 5 900 9 皮特 5 1200(还有更多列,例如领域点等)
如果时间戳只是增加,我有一个解决方案。
SELECT id, name, level, timestamp
FROM player_testing
WHERE id IN ( SELECT MAX(dup.id)
FROM player_testing As dup
GROUP BY dup.name, dup.level)
UNION
SELECT MIN(dup.id)
FROM player_testing As dup
GROUP BY dup.name, dup.level)
)
ORDER BY ts
但我没有办法让它解决我的问题。
【问题讨论】:
标签: sql postgresql