mysql 使用SQL查询选择列中的最近年份

ux6nzvsh  于 2022-11-28  发布在  Mysql
关注(0)|答案(2)|浏览(165)

我有一个这样的 Dataframe
| 物有所值。|日期|
| - -|- -|
| A级|2009年8月8日|
| A级|2021年9月12日|
| A级|2022年5月10日|
| A级|2022年6月9日|
| A级|2022年7月8日|
我需要输出
| 价值|日期|
| - -|- -|
| A级|2022年5月10日|
| A级|2022年6月9日|
| A级|2022年7月8日|
我们必须打印一个最近的年份,所有月份的数据都显示在日期列中。请参考输出表。
我使用了SQL查询,如
从排序依据(日期)DESC;
max()只选择了一个日期,所以对我没有帮助
但没有得到预期的答案。请有人帮我查询吗?

vxf3dgd4

vxf3dgd41#

您可以只在子查询中使用MAX,这将产生您在问题中显示的预期结果:

SELECT yourcolumn
FROM yourtable
WHERE 
YEAR(yourcolumn) = (SELECT MAX(YEAR(yourcolumn)) FROM yourtable);

最近的年份是2022年,因此子查询中的MAX将查找这一年,整个查询将选择2022年中的所有日期。

ctzwtxfj

ctzwtxfj2#

SELECT *
FROM tablename
WHERE datecolumn >= (SELECT DATE_FORMAT(MAX(datecolumn), '%Y-01-01')
                     FROM tablename)

为了改进这个查询,你需要一个datecolumn的索引(或者这里的coolumn是一个表达式前缀)。

相关问题