如果存在具有此值的行,则从聚合组获取具有特定值的行

时间:2014-09-01 15:14:34

标签: mysql group-by aggregate-functions

我有一张表,我在A列上做了一个包含哈希值的GROUP_CONCAT。分组在一起的每个行可以在列B中包含不同的值。假设列B可以包含“是”'或者' no'。

如果有行有'是'并且没有'在那个小组中,我想采取“是”'作为B列分组的结果。如果我什么都不做,根据文档,我会得到B列的随机结果。

我还没有找到一个接受固定值/字符串的聚合函数。函数FIXED_VALUE是我想要看到的非现有聚合函数。

+--------+---------+
|  hash  |  yes_no |
+--------+---------+
| 111111 |    yes  |
| 111111 |    no   |
| 111111 |    no   |
| 222222 |    no   |
| 222222 |    no   |
+--------+---------+

SELECT FIXED_VALUE(yes_no='yes') FROM my_table GROUP BY hash

1 个答案:

答案 0 :(得分:0)

尝试做这样的事情。

SELECT
    GROUP_CONCAT(hash) as hash,
    MAX(yes_no) as yes_no
FROM table

DEMO