【问题标题】:sqlite - return all columns for max of one column without repeatssqlite - 返回所有列,最多为一列,不重复
【发布时间】:2016-09-25 23:08:50
【问题描述】:

我正在使用 Python 查询 SQL 数据库。我对数据库相当陌生。我已尝试查找此问题,但找不到足够相似的问题来获得正确答案。

我有一个包含多列/多行的表。我想找到单个列的 MAX,我想要返回所有列(整个 ROW),并且我只想要一个 MAX 实例。现在我要返回十个 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

我又尝试了很多,但他们什么也没返回。他们在某种程度上是不对的。这就是问题所在,我太新了,无法在两个工作查询语句之间找到中间立场。

【问题讨论】:

  • @Joachim - 任何行。它不一定是第一个。
  • 是的!!!!谢谢!

标签: python sqlite max


【解决方案1】:

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

SELECT *, max(f) FROM cbar;

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

SELECT * FROM cbar ORDER BY f DESC LIMIT 1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 2012-05-13
    • 2011-05-31
    • 1970-01-01
    • 2020-12-29
    • 2017-06-11
    • 2017-01-07
    相关资源
    最近更新 更多