WHERE值可以在多个列中

时间:2013-01-31 00:20:36

标签: sql sqlite

这里还有一个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;

我甚至不确定从哪里开始。有什么想法吗?

0 个答案:

没有答案