我有下表
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,最大值(费用)但我很困惑,日期总是来自正确的行
由于
答案 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