好吧,所以我有一张人的桌子,每个人都属于一对。我需要运行一个只获得每对夫妇的旧成员的查询。这是我的架构:
id BIGINT
name VARCHAR(32)
couple_id VARCHAR(255)
birthdate TIMESTAMP
我正在处理的查询:
SELECT * FROM person
GROUP BY couple_id
HAVING birthdate > ???
couple_id是一个随机字符串。目前输出如下:
1 John AAA 1985/12/04
2 Jane AAA 1984/01/02
3 Christopher BBB 1991/07/07
4 Christina BBB 1992/08/20
5 Alex CCC 1995/02/07
6 Alexandra CCC 1996/11/12
我需要一个返回John,Christina和Alexandra行的查询。
答案 0 :(得分:1)
一种方法是使用派生表。
SELECT p1.*
FROM person p1
join (select couple_id, max(birthdate) as mxbrthdt
from person group by couple_id) p2
on p2.couple_id = p1.couple_id and p1.birthdate = p2.mxbrthdt