我目前正在使用此查询来选择一些数据:SELECT DISTINCT a.code AS code, name, max(scen.Is3D) AS Is3D FROM locations LEFT JOIN ...
。 scen
表具有列Is3D
和Date
。我只想选择日期IS NOT NULL
中的最大项目数。我尝试了max(scen.Is3D WHERE scen.Date IS NOT NULL)
,但是没有用。我不能在查询中的FROM
之后更改任何内容,因此,如果可能的话,我需要在MAX中进行过滤。我正在使用MySQL 5.7。
最佳答案
您可以使用:
MAX(CASE WHEN scen.date IS NOT NULL THEN scen.Is3D END) AS Is3D
当不满足任何
CASE
条件时,NULL
表达式将返回WHEN
,但是MAX()
会忽略空值,因此这只会返回所选行中Is3D
列的最大值。关于mysql - SQL选择日期不为空的最大列数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51329891/