Учитывая этот набор данных, Джон имеет снимок за год своих запасов.
Мне бы хотелось, чтобы данные были помечены так, чтобы самые ранние из купленных в его портфеле акций были помечены как первичные.
Например, с учетом этого набора данных
+------+------+-------+-------+
| Name | Year | Stock | Value |
+------+------+-------+-------+
| John | 2020 | ABC | 123 |
| John | 2021 | ABC | 123 |
| John | 2021 | XYZ | 200 |
| John | 2022 | ABC | 123 |
| John | 2022 | XYZ | 200 |
| John | 2022 | JKL | 500 |
| John | 2023 | XYZ | 200 |
| John | 2023 | JKL | 500 |
+------+------+-------+-------+
Мне бы хотелось, чтобы данные были помечены следующим образом:
+------+------+-------+-------+------------+
| Name | Year | Stock | Value | Is_Primary |
+------+------+-------+-------+------------+
| John | 2020 | ABC | 123 | Yes |
| John | 2021 | ABC | 123 | Yes |
| John | 2021 | XYZ | 200 | |
| John | 2022 | ABC | 123 | Yes |
| John | 2022 | XYZ | 200 | |
| John | 2022 | JKL | 500 | |
| John | 2023 | XYZ | 200 | Yes |
| John | 2023 | JKL | 500 | |
+------+------+-------+-------+------------+
В 2020 году Джон держит AB C, который является основным, поскольку он единственный.
В 2021 году Джон имеет AB C, но также приобрел XYZ, но AB C по-прежнему является его основным, поскольку он добавляется первым.
в 2022 году, Джон имеет AB C и XYZ, и добавил JKL, но AB C по-прежнему является его основным.
В 2023 году Джон больше не держит AB C, поэтому XYZ отмечен как основной. В ситуации, когда несколько акций добавляются в один и тот же год, я бы хотел, чтобы самые ранние в алфавитном порядке были помечены как первичные.
Как мне это сделать, будь то через функции в PL / SQL или в чистом виде SQL?