SQLite如何根据最大列选择行

时间:2016-01-04 18:20:49

标签: sqlite

我有下表

UserID, Cost, date 
1.       23.   2015-04-02
2.       17.   2015-03-14
1.       63.   2015-09-23
2.       49.   2013-03-17
2.       12.   2013-04-23
1.       96.   2016-01-01

我想要的是USERID&amp ;;成本最高的日期

所以

Userid 1 cost 96 date 2016-01-01
Userid 2 cost 49 date 2013-03-17

我试过了

按用户ID

从表格组中选择日期,用户ID,最大值(费用)

但我很困惑,日期总是来自正确的行

由于

2 个答案:

答案 0 :(得分:0)

在SQLite 3.7.11或更高版本中,其他列的值保证来自与max()匹配的行。

答案 1 :(得分:0)

考虑大多数RDMS版本的通用方法。下面使用派生表子查询:

SELECT t2.UserID, t2.MaxOfCost, t1.Date
FROM Table t1
INNER JOIN
     (SELECT UserID, Max(Cost) As MaxOfCost,      
      FROM Table) t2
ON t1.UserID = t2.UserID 
AND t1.Cost = t2.MaxOfCost