mysql group by 基于另一列

标签 mysql group-by distinct

假设我有下表记录:

    Id   |   machine   |   manual   |
-------------------------------------
    1    |    1        |    false   |
    2    |    2        |    false   |
    3    |    3        |    false   |
    4    |    4        |    false   |
    5    |    1        |    true    |

我想根据机器列检索一个不同的表,但是当涉及到在 manual: false 或 true 之间“选择”时,true 胜过 false。

    Id   |   machine   |   manual   |
-------------------------------------
    5    |    1        |    true    |
    2    |    2        |    false   |
    3    |    3        |    false   |
    4    |    4        |    false   |

我该怎么做?

最佳答案

SELECT x.* 
  FROM my_table x
  JOIN 
     ( SELECT machine,MAX(manual) manual FROM my_table GROUP BY machine ) y
    ON y.machine = x.machine 
   AND y.manual = x.manual;

关于mysql group by 基于另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446291/

相关文章:

MySQL:在搜索行之后 GROUP BY 是否有效?

mysql - SQL:单独匹配标签的项目数

mysql - 计算列,然后在 SQL 中对两列进行分组

mysql 按 : Slow query 分组

PHP mysql Distinct,只加载一组id

php - 仅更新具有相似特征的一组结果中的一行

mysql - 不同并不能消除空结果

php - 如何用mysql更新设置的记录数?

PHP/MySQL - 使用表内容之外的名称创建变量?

MySQL Coercibility 对表达式 : why both expressions are unicode, 的整理是一个错误?