我正面临这里的一个角落...
的背景:
TABLE myrecord (
id int # primary key
name varchar(32) # test name
d_when varchar(8) # date in yyyymmdd string format
)
内容:
id name d_when
100 Alan 20110201
101 Dave 20110304
102 Alan 20121123
103 Alan 20131001
104 Dave 20131002
105 Bob 20131004
106 Mike 20131101
用外行的话来说,我想弄清楚谁是“回归者”以及他最后一次(即“倒数第二次”)访问是什么时候。像过分热情的东西:
SELECT SECOND_MAX(id), CORRESPONDING(d_when)
FROM myrecord
GROUP BY name
HAVING count(name)>1;
预期结果:
101 Dave 20110304
102 Alan 20121123
到目前为止,我尝试了以下方法。
SELECT T1.id, t1.name, T1.d_when
FROM myrecord t1
WHERE id IN (SELECT MAX(id),
COUNT(id) cn
WHERE cn>1
ORDER BY d_when DESC)
但显然有些东西不在这里。