sqlite - 返回最多一列的所有列,不重复

时间:2016-09-25 07:35:19

标签: python sqlite max

我使用Python来查询SQL数据库。我对数据库很新。我已经尝试过查找这个问题,但我找不到类似的问题来得到正确答案。

我有一个包含多列/行的表。我想找到单列的MAX,我希望返回所有列(整个ROW),我只想要一个MAX实例。现在我得到10个ROWS返回,因为MAX重复了十次。我只想要一个ROW返回。

到目前为止我尝试过的查询字符串:

sql = 'select max(f) from cbar'  
# this returns one ROW, but only a single COLUMN (a single value)

sql = 'select * from cbar where f = (select max(f) from cbar)'  
# this returns all COLUMNS, but it also returns multiple ROWS

我已经尝试了更多,但他们什么也没有回来。他们不知何故是对的。这就是问题,我太新了,无法找到我的两个工作查询语句之间的中间位置。

1 个答案:

答案 0 :(得分:1)

在SQLite 3.7.11或更高版本中,您只需检索所有列以及最大值:

SELECT *, max(f) FROM cbar;

但是你的Python可能太旧了。在一般情况下,您可以按该列对表进行排序,然后只读取第一行:

SELECT * FROM cbar ORDER BY f DESC LIMIT 1;