我使用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
我已经尝试了更多,但他们什么也没有回来。他们不知何故是对的。这就是问题,我太新了,无法找到我的两个工作查询语句之间的中间位置。
答案 0 :(得分:1)
在SQLite 3.7.11或更高版本中,您只需检索所有列以及最大值:
SELECT *, max(f) FROM cbar;
但是你的Python可能太旧了。在一般情况下,您可以按该列对表进行排序,然后只读取第一行:
SELECT * FROM cbar ORDER BY f DESC LIMIT 1;