获取Group By里面的列的最大值,其中value不为null

时间:2015-02-05 15:31:54

标签: mysql

我有一个包含两列的表,如:

Patient_Letter_id, Version
1                    1
1                    2
NULL                  1
NULL                  1
2                     1
2                     2
2                     3

现在我希望查询获取相同patient_letter_id的版本记录的最大值,如果patient_letter_id为null,则返回如下所示的行:

patient_letter_id   Version
1                     2
NULL                  1
NULL                  1
2                     3

2 个答案:

答案 0 :(得分:1)

使用分组依据功能,然后联合记录具有空值。 你可以试试这个:

select patient_letter_id,version
from yourtable
where version is null
union
select patient_letter_id,max(version) as version
from yourtable
where version is not null
group by patient_letter_id

答案 1 :(得分:0)

你可以试试这个:

select patient_letter_id, max(version) as version
from testing
group by case 
         when patient_letter_id is null then rand() 
         else patient_letter_id
         end