mysql,如何为具有特定值的单元格赋予优先级
在给定的表中,我希望选择列a中具有最大值的行,但同时,如果有两行或更多行具有最大值,则a希望获得列B中的值不为null的行,如果有,否则,即使列B中的值为null,我也只获得具有最大值的第一行 总之:mysql,如何为具有特定值的单元格赋予优先级,mysql,Mysql,在给定的表中,我希望选择列a中具有最大值的行,但同时,如果有两行或更多行具有最大值,则a希望获得列B中的值不为null的行,如果有,否则,即使列B中的值为null,我也只获得具有最大值的第一行 总之: 第一个选项:A列最大值,B列不为空 in case such a row does not exist 第二个选项:A列最大值,B列为空 是否可以使用此约束编写一个查询,或者我必须创建两个查询,中间包含一些逻辑?下面的查询将实现此功能 您可以将多个列与orderby一起使用,如下所示
in case such a row does not exist
是否可以使用此约束编写一个查询,或者我必须创建两个查询,中间包含一些逻辑?下面的查询将实现此功能
您可以将多个列与
orderby
一起使用,如下所示
SELECT columnA,columnB
FROM YourTable
ORDER BY columnA DESC, columnB DESC
它将按列排序A第一个降序,然后按列B降序空将是最后一个选择
如果只返回一行,则在查询结束时添加一个
限制1
。您可以使用内联视图返回列a的最大值,然后执行联接以获取具有相同列a值的所有行,然后从这些行中获取列b的最大值
例如:
SELECT s.col_a
, MAX(t.col_b) AS col_b
FROM ( SELECT MAX(r.col_a) AS col_a
FROM mytable r
) s
JOIN mytable t
ON t.col_a = s.col_a
使用示例数据和所需输出编辑您的问题
SELECT s.col_a
, MAX(t.col_b) AS col_b
FROM ( SELECT MAX(r.col_a) AS col_a
FROM mytable r
) s
JOIN mytable t
ON t.col_a = s.col_a