我有一个SQL表如下
年
2007
2007年
2007年
2007年
2006年
2006年
2006年
2006年
Year的类型为VARCHAR(4)且不是DATE类型。在年数相等的情况下(此处为4-2006,4-2007),我希望将后一年作为选定年份。
这是我的SQL查询: -
SELECT `Year`, COUNT(*) FROM `results` GROUP BY `Year` LIMIT 1
然而,它返回2006而不是2007.我尝试使用ORDER BY和/或同时删除GROUP BY但没有效果。
我怎样才能做到这一点?
答案 0 :(得分:1)
您需要ORDER BY
。只是为了获得最近的一年:
SELECT `Year`, COUNT(*)
FROM `results`
GROUP BY `Year`
ORDER BY `Year` DESC
LIMIT 1;
我不确定我知道你的意思:“这里的年数相等”。但是,我推测:
SELECT `Year`, COUNT(*)
FROM `results`
GROUP BY `Year`
ORDER BY COUNT(*) DESC, `Year` DESC
LIMIT 1;
答案 1 :(得分:0)
试试这个:您需要使用ORDER BY
DESC
获取year
SELECT Year, COUNT(*) as height_number
FROM results
GROUP BY Year
ORDER BY Year DESC
LIMIT 1