这里还有一个SQL问题......
我正在处理篮球数据,以下代码正在运作:
SELECT tm2p1, tm2p2 sum(pmtm2), sum(elapsedsecs)/60
FROM bv
WHERE tm1p1id = 786 and tm1p3id = 714 and tm1p4id = 847
GROUP BY tm2p1, tm2p2
HAVING sum(elapsedsecs)/60 > 20
ORDER BY sum(pmtm2) DESC;
这样做的目的是找到tm2p1和tm2p2列中最好的队友,对阵tm1p1id中有玩家#786,tm1p2id中玩家#714和tm1p4id中玩家#847的阵容。
但是,每个团队有5个ID,而且我的数据混合在一个玩家#786并不总是在tm1p1id中,而是可能在tm1p4id中。另外,我不想在tm2p1和tm2p2中找到最好的队友...我想在tm2p1 ... tm2p5中找到最好的对。所以在一种情况下我可能有一个p1& p4组合,另一种情况可能是p2& p3组合。
我想要的伪代码是这样的:
SELECT two of <tm2p1, tm2p2, tm2p3, tm2p4,
tm2p5>, sum(pmtm2), sum(elapsedsecs)/60
FROM bv
WHERE <tm1p1, tm1p2, tm1p3, tm1p4, tm1p5> contains all three of 786,714,847
GROUP BY whichever two of <tm2p1, tm2p2, tm2p3, tm2p4, tm2p5> were best
(note in the above line, some pairs might be p1&p2, some p2&p4, etc)
HAVING sum(elapsedsecs)/60 > 20
ORDER BY sum(pmtm2) DESC;
我甚至不确定从哪里开始。有什么想法吗?