SELECT MAX字段值或零值

时间:2014-11-05 07:36:28

标签: mysql sql select max


我有user_groups表格,如果int实体time中有0,我需要选择字段user_group0的最大time值1}}字段。
像这样:

SELECT time FROM user_groups
WHERE
IF (time == 0) THEN time = 0
ELSE MAX(time)

我需要多平台解决方案。

更新:

我正在使用mysql
在这种情况下:

id | time |
1  |  5   |
2  |  6   |

我期待6
在这种情况下:

id | time |
3  |  5   |
4  |  6   |
5  |  0   |

我期待0

3 个答案:

答案 0 :(得分:3)

如何使用案例

SELECT case when min(time) = 0 then 0 else max(time) end FROM user_groups;

或者如果时间可以< 0但是只应考虑时间0或更多,然后添加where子句可以帮助

SELECT case when min(time) = 0 then 0 else max(time) end FROM user_groups where time >= 0;

答案 1 :(得分:3)

检查至少一个记录的时间是否为零。根据结果​​显示0或最大(时间)

select 
  case when max(case when time = 0 then 1 else 0 end) = 1 then 0 else max(time) end
from user_groups;

编辑:您已将MySQL标记添加到您的请求中。 MySQL知道一个BOOLEAN数据类型,其中TRUE = 1且FALSE = 0.所以你可以把上面写成:

select 
  case when max(time = 0) then 0 else max(time) end
from user_groups;

答案 2 :(得分:2)

此解决方案使用和功能也涵盖负面时间情况:

SELECT case when min(abs(time)) = 0 then 0 else max(time) end FROM user_groups;