【问题标题】:SQL Count Instances of Value and Order by highest number, where value is a yearSQL Count Instances of Value and Order by high number,其中 value 是一年
【发布时间】:2016-10-31 18:26:17
【问题描述】:

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

我怎样才能做到这一点?

【问题讨论】:

    标签: mysql sql syntax


    【解决方案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;
    

    【讨论】:

    • 完全正确。
    【解决方案2】:

    试试这个:你需要使用ORDER BYDESC获取year的高度数

    SELECT Year, COUNT(*) as height_number
    FROM results
    GROUP BY Year
    ORDER BY Year DESC
    LIMIT 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多