我的表中列有值:
'2017-12-1', '2017-12-5', '2017-12-15', '2015-12-1', '2016-12-25', '2012-12-18'
等
现在我想选择列LIKE '2017-12'
的行和列LIKE '2015-12'
的联合行。因此,对于LIKE '2017-12'
,我将获得3条记录,对于LIKE '2015-12'
,我将获得1条记录。现在我想联合他们,但只采取' 2017-12-15'因为它是MAX。我尝试了ORDER BY LIMIT 1,但它不能与UNION合作。
答案 0 :(得分:0)
这对我有用,假设列将日期存储为字符类型。
SELECT x,MAX(CAST(substring(x from 9 for 10) AS integer)) AS m
FROM tmp1 WHERE substring(x from 1 for 7)='2015-12' OR substring(x from 1 for 7)='2017-12'
GROUP BY x ORDER BY x desc LIMIT 1
如果您要存储日期类型:
SELECT x FROM tmp WHERE to_char(x,'YYYY-MM')='2017-12' OR to_char(x,'YYYY-MM')='2015-12'
GROUP BY xORDER BY x desc LIMIT 1
希望它有所帮助。