Postgresql PostgresSql如何按多个列进行分组并同时获取所有其他列?
我想按三列进行分组,并从所有列中获取数据 这是可行的,但我没有从lap.valid、lap.“timestamp”和lap.maxspeed_kmh获取数据:Postgresql PostgresSql如何按多个列进行分组并同时获取所有其他列?,postgresql,group-by,Postgresql,Group By,我想按三列进行分组,并从所有列中获取数据 这是可行的,但我没有从lap.valid、lap.“timestamp”和lap.maxspeed_kmh获取数据: SELECT players.name, cars.car, tracks.track, min(lap.laptime) AS best_laptime FROM lap JOIN playerinsession ON lap.playerinsessionid = playerinsessio
SELECT
players.name,
cars.car,
tracks.track,
min(lap.laptime) AS best_laptime
FROM lap
JOIN playerinsession ON lap.playerinsessionid = playerinsession.playerinsessionid
JOIN session ON playerinsession.sessionid = session.sessionid
JOIN tracks ON session.trackid = tracks.trackid
JOIN cars ON playerinsession.carid = cars.carid
JOIN players ON playerinsession.playerid = players.playerid
GROUP BY
players.name,
cars.car,
tracks.track;
这就是我想做的:
SELECT
players.name,
cars.car,
tracks.track,
min(lap.laptime) AS best_laptime,
lap.valid,
lap."timestamp",
lap.maxspeed_kmh
FROM lap
JOIN playerinsession ON lap.playerinsessionid = playerinsession.playerinsessionid
JOIN session ON playerinsession.sessionid = session.sessionid
JOIN tracks ON session.trackid = tracks.trackid
JOIN cars ON playerinsession.carid = cars.carid
JOIN players ON playerinsession.playerid = players.playerid
GROUP BY
players.name,
cars.car,
tracks.track;
但我收到一个错误“column lap.valid必须出现在GROUP BY…”,我如何解决这个问题
重要的是让每名球员在每一辆车和每一条赛道上都有最快的圈速。每一条赛道都有数百圈的时间,由多个运动员在不同的赛车上完成。检查
检查
检查
检查
您还需要在组中添加lap.valid、lap.timestamp、lap.maxspeed\u kmh。但问题是你真正想从你的提问中得到什么……是的,我知道这是可能的,但我希望每个球员结合每辆车和每条赛道都能以最快的速度跑一圈。如果我按所有参数分组,我会得到很多行,对吗?我回家后会尝试@Clodoaldo Neto的答案。你也需要在你的小组中添加lap.valid、lap.timestamp、lap.maxspeed\u kmh。但问题是你真正想从你的提问中得到什么……是的,我知道这是可能的,但我希望每个球员结合每辆车和每条赛道都能以最快的速度跑一圈。如果我按所有参数分组,我会得到很多行,对吗?我回家后会尝试@Clodoaldo Neto的答案。你也需要在你的小组中添加lap.valid、lap.timestamp、lap.maxspeed\u kmh。但问题是你真正想从你的提问中得到什么……是的,我知道这是可能的,但我希望每个球员结合每辆车和每条赛道都能以最快的速度跑一圈。如果我按所有参数分组,我会得到很多行,对吗?我回家后会尝试@Clodoaldo Neto的答案。你也需要在你的小组中添加lap.valid、lap.timestamp、lap.maxspeed\u kmh。但问题是你真正想从你的提问中得到什么……是的,我知道这是可能的,但我希望每个球员结合每辆车和每条赛道都能以最快的速度跑一圈。如果我按所有参数分组,我会得到很多行,对吗?回家后我会尝试@Clodoaldo Neto的答案。我尝试了一些独特的方式,但从未成功,但这很有魅力!谢谢:)我试过用某种方式来区分,但一直没有成功,但效果很好!谢谢:)我试过用某种方式来区分,但一直没有成功,但效果很好!谢谢:)我试过用某种方式来区分,但一直没有成功,但效果很好!谢谢:)
select distinct on (p.name, c.car, t.track)
p.name,
c.car,
t.track,
l.laptime as best_laptime,
l.valid,
l."timestamp",
l.maxspeed_kmh
from
lap l
join
playerinsession on l.playerinsessionid = playerinsession.playerinsessionid
join
session on playerinsession.sessionid = session.sessionid
join
tracks t on session.trackid = t.trackid
join
cars c on playerinsession.carid = c.carid
join
players p on playerinsession.playerid = p.playerid
order by p.name, c.car, t.track, l.laptime