从sqlite表中检索秩

从sqlite表中检索秩,sql,sqlite,Sql,Sqlite,假设我在sqlite数据库中有一个表,其中有两个字段:name和age Bob|40 Rob|50 Zek|60 如何查询sqlite表中的Zek并确定他是最老的?更一般地说,假设我有数百万个姓名和年龄,我想查询一个特定条目,比如name=Juju bear,并通过不同字段查找条目的排名,例如,Juju bear按年龄排名133455 谢谢 科罗拉多州您可以使用子查询计算年龄较大的人数,如: select p1.* , ( select count(*)

假设我在sqlite数据库中有一个表,其中有两个字段:name和age

Bob|40
Rob|50
Zek|60
如何查询sqlite表中的Zek并确定他是最老的?更一般地说,假设我有数百万个姓名和年龄,我想查询一个特定条目,比如name=Juju bear,并通过不同字段查找条目的排名,例如,Juju bear按年龄排名133455

谢谢


科罗拉多州

您可以使用子查询计算年龄较大的人数,如:

select  p1.*
,       (
        select  count(*) 
        from    People as p2
        where   p2.age > p1.age
        ) as AgeRank
from    People as p1
where   p1.Name = 'Juju bear'

安多马尔的答案是好的,几乎可以肯定,它仍然是这个问题的精选答案。也就是说

我发现,当我试图将一个复杂的查询硬塞进Andomar的解决方案中时,我正在运行的查询很快变得难以处理,因此出于绝望,我尝试使用以下代码:

CREATE TABLE DoughnutShopCountsByHood AS 
SELECT Neighborhood, COUNT(*) AS DoughnutShopCount FROM 
(  <<crazy-set-of-painful-subqueries-removed>>  )
GROUP BY Neighborhood ORDER BY DoughnutShopCount DESC;
重要的部分是创建表。。。作为第一行的一部分。我原计划将此作为几个步骤中的第一步,但至少在Firefox的SQLite管理器中,我惊喜地发现,当我将长得离谱的查询转储到一个新表中时,RDBMS只是自动添加了一个索引列。此列可以很好地作为秩列翻倍

我意识到这是一个非常古老的问题,所以这个答案可能不会得到任何支持,但我将发布它,以防我的个人经验可以帮助其他人应对类似的挑战


再次感谢Andomar提供的原始答案-我想这对大多数人来说是最有帮助的。

我知道您提供了一个简化的示例,但存储了出生日期或年份,而不是年龄本身,然后计算年龄。不要储存年龄本身。如果我没有多次看到这种情况,我就不会写这篇评论了。很好,年龄在变,不是吗?