如何使用相同的ID但使用不同的DATE联接所有不同的ROW,并将其作为具有DATE_0,DATE_1,DATE_2,…等新列的唯一行返回。

问题描述 投票:-1回答:1
考虑此表:

+----+------------+ | ID | DATE | +----+------------+ | 0 | 01/12/2007 | | 0 | 15/02/2018 | | 1 | 21/05/2006 | | 1 | 03/12/2017 | | 1 | 01/03/2007 | | 1 | 23/11/2018 | | 2 | 15/10/2019 | | 3 | 11/10/2019 | | 3 | 22/07/2000 | | 4 | 08/05/2001 | | 4 | 07/03/1998 | +----+------------+

我需要一个SQL查询,所以该表将变成这样:

+----+------------+------------+------------+------------+ | ID | DATE_0 | DATE_1 | DATE_2 | DATE_3 | +----+------------+------------+------------+------------+ | 0 | 01/12/2007 | 15/02/2018 | NULL | NULL | | 1 | 21/05/2006 | 03/12/2017 | 01/03/2007 | 23/11/2018 | | 2 | 15/10/2019 | NULL | NULL | NULL | | 3 | 11/10/2019 | 22/07/2000 | NULL | NULL | | 4 | 08/05/2001 | 07/03/1998 | NULL | NULL | +----+------------+------------+------------+------------+

请记住,我已经知道相同ID行的最大数目不会超过4。

谢谢你。

请考虑此表:+ ---- + ------------ + | ID | DATE | + ---- + ------------ + | 0 | 2007年1月12日| | 0 | 15/02/2018 | | 1 | 2006年5月21日| | 1 | 2017/03/12 | | 1 | 2007年1月3日| | 1 | 23/11/2018 | ...

sql firebird interbase
1个回答
1
投票
您可以使用row_number()和条件聚合:
© www.soinside.com 2019 - 2024. All rights reserved.