我有一个名为英雄的sqlite数据库,我试图为每个使用该服务的人找到第二个最早的日期。要找到我刚才使用的最早的日期:
SELECT MIN(Date), Cust_Num FROM heroes GROUP BY Cust_Num;
现在,我使用以下内容查找第二个最早的日期:
SELECT MAX(Date), Cust_Num FROM heroes WHERE Date IN (SELECT Date FROM heroes ORDER BY Date LIMIT 2) GROUP BY Cust_Num;
然而,它只给了我第一天第二次使用该服务的9个人有数据。有什么建议吗?
谢谢!
答案 0 :(得分:0)
如果您改为加入客户编号的子查询,您将确保日期与相应的客户编号相匹配。在你的第二次尝试中,你没有那种确定性。
SELECT h.Cust_Num, MAX(d.Date)
FROM
heroes h
JOIN (
SELECT Cust_Num, Date
FROM heroes
ORDER BY Date
LIMIT 2
) d
ON d.Cust_Num = h.Cust_Num
GROUP BY h.Cust_Num
ORDER BY h.Cust_Num;