gpt4 book ai didi

mysql - 在按 col1 分组时获取 col2 的第二个最大值

转载 作者:行者123 更新时间:2023-11-29 01:13:43 25 4
gpt4 key购买 nike

我在这里面对一个角落......

背景:

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)

但这里显然有些地方不对。

最佳答案

这是一种方法...

SELECT x.* 
FROM my_table x
JOIN my_table y
ON y.name=x.name
AND y.d_when >= x.d_when
GROUP
BY x.name
, x.d_when
HAVING COUNT(*) = 2;

关于mysql - 在按 col1 分组时获取 col2 的第二个最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17500672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com