我有一个包含重复记录的客户表,其中最新的记录不一定包含完整的信息。例如:
| customer | Created at | last name | City | County | Adress |
|----------|------------|-----------|--------|---------------|--------|
| A | 1-2-2022 | Adams | Null | United States | 34th str |
| A | 18-7-2023 | M. ADAMS | NY | United States | null |
我的目标是通过获取最新记录的信息来消除重复项,如果最新记录的信息为空,则取上一条记录的信息。
我希望得到这样的结果:
| customer | Created at | last name | City | County | Adress |
|----------|------------|-----------|--------|---------------|--------|
| A | 18-7-2023 | M. ADAMS | NY | United States | 34th str |
有人能帮我编写实现这一目标的SQL代码吗?
请注意,由于业务人员总是添加新客户而非编辑已存在的旧记录,所以客户ID是唯一的。
当我尝试使用ifnull()
和MAX()
函数时,结果并没有达到我预期的效果。