SQL计数值的实例和按最高编号排序,其中值为一年

时间:2016-10-31 18:26:17

标签: mysql sql syntax

我有一个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但没有效果。

我怎样才能做到这一点?

2 个答案:

答案 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