根据上一个查询中的一个值查找结果

时间:2017-08-25 05:00:15

标签: sql postgresql

我有一张这样的表:

game_id | score
---------------
1       | 500
2       | 1000
3       | 1500

现在,考虑到game_id,我想知道在一个查询中有多少其他游戏得分较低。

因此,当game_id = 1时,我希望2为结果。

我本能地想先运行一个查询来检索score = 1的game_id,然后运行一个简单的select count(*) where...,但我不确定如何完成

我使用的是postgres 9.6。

1 个答案:

答案 0 :(得分:3)

你基本上只需在where子句中使用子查询,并在子查询中传递game_id,就像这样:

select count (game_id) from table where score < (select score from table where game_id = 1)

这背后的逻辑是引擎将评估内部选择,返回单个值作为结果,然后使用所述值评估外部选择