我有一张table,顾客喜欢:
ID Type Date Address SSN
RT124 MASTER 12/15/2005 7 Hill st 12345
RT542 MASTER 06/14/2006 7 Hill st 12345
HT457 UNIQUE 10/27/2009 10 PARK WAY 24569
QA987 UNIQUE 08/28/2010 10 PARK WAY 24569
AH825 UNIQUE 10/12/2012 10 PARK WAY 24569
14837 SINGLE 05/05/2010 2 TED ROAD 11111
24579 MARRIED 06/24/2014 2 TED ROAD 11111
我想要的是为每个重复的地址和ssn创建一个新的列+#,并且id#1应该是最近的日期。
注意:此表仅包含基于地址和ssn的重复行,但id是唯一的,不需要求和。
所以输出应该是这样的(单击图像进行缩放):
我做了一些研究,并尝试了一些例子,但没有工作得到这个输出。
我将感谢任何帮助!
2条答案
按热度按时间xqnpmsa81#
您需要枚举行并进行聚合。在mysql(v8之前)中,它看起来像:
请注意,这不会重复
address
以及ssn
. 这似乎没什么用,但你当然可以在每组中重复这些列。mrfwxfqh2#
地址复制的次数有限制吗?如果有一个已知的限制,那么每个副本都可以有多个左连接。如果您知道只有6个或更少的副本,那么下面的解决方案就是:
如果有6个以上的列,只需将另一组列添加到select语句:
以及from语句的新左联接: