我有一个SQL表如下
<<p> 年/strong>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,但没有效果。
我怎样才能做到这一点?
你需要一个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;
试试这个:您需要使用ORDER BY
DESC
来获取year
的高度数
SELECT Year, COUNT(*) as height_number
FROM results
GROUP BY Year
ORDER BY Year DESC
LIMIT 1