Sqlite3 - 如何从SELECT max

时间:2015-12-02 04:23:37

标签: python sqlite

我的表设置了ID,时间,AAC,AAD等列。时间是输入数据的时间戳。

我如何才能获得每列最大值的时间戳值?

import sqlite3

sqlite_file = 'foo.db'
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
column = ['AAC', 'AAD', 'ABC', 'ABP', 
          'AGL', 'AHG', 'AHY', 'AIO']
for i in range(len(column)):
    c.execute("SELECT max("'"%s"'") FROM prices" % (column[i]))
    print (column[i], c.fetchone())
conn.close()

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

尝试选择所需的列以及时间戳,并按降序排列所需的列。最后只选择一行就可以了。

SELECT column_name,Time FROM prices order by column_name desc limit 1

其中column_name是AAC,AAD等。限制1将仅返回所需列的最大值行。

答案 1 :(得分:1)

使用SQLite 3.7.11或更高版本(检查sqlite3.sqlite_version),其他列值保证来自与MAX()或MIN()匹配的行:

SELECT max(AAC), Time FROM prices;