【问题标题】:Query select max查询选择最大值
【发布时间】:2017-07-28 21:00:51
【问题描述】:

我有这张桌子

+----+-----+---------+
| id | id2 | correct |
+----+-----+---------+
|  1 |   5 |       0 |
|  2 |   4 |       0 |
|  3 |   5 |       1 |
|  4 |   5 |       1 |
|  5 |   4 |       0 |
|  6 |   2 |       1 |
|  7 |   4 |       0 |
|  8 |   2 |       0 |
|  9 |   2 |       0 |
|  10|   5 |       1 |
|  11|   5 |       1 |
+----+-----+---------+

我需要选择 id2 排序每个 id2 出现“正确”答案“0”的次数的最大值。 我给你举个例子。

id2: 2 - 出现 3 次,出现 3 次中的 2 次,正确值为“0”。
id2: 4 - 在 3 次中出现 3 次和 3 次,正确为“0”。
id2: 5 - 在 5 次中出现 5 次和 1 次,正确为“0”。

所以我想把id2的“4”排在“2”的id2之前,id2“5”排在最后。

对不起,我的解释不好,但我不知道该怎么做。

提前感谢您的宝贵时间

【问题讨论】:

    标签: mysql select max sql-order-by


    【解决方案1】:
    select id2
    from mytable
    where correct = 0
    group by id2
    order by count(*) desc
    

    如果您还想包含没有正确答案的 id:

    select id2
    from mytable
    group by id2
    order by sum(correct = 0) desc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 2013-10-26
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多