【发布时间】:2016-11-23 23:17:37
【问题描述】:
我有这张桌子
id | idDevice | type | color
-----------------------------
1 | 1 | a | red
2 | 1 | b | green
3 | 1 | c | red
4 | 2 | a | blue
5 | 2 | b | red
每个idDevice 至少有一个type 和红色color。
我想为每个idDevice 获得一个type 具有color 红色(这不是唯一的),并带有这样的GROUP BY 语句:
SELECT idDevice,
CASE WHEN color = red THEN type END as redType
FROM table
GROUP BY idDevice
不幸的是,上述方法不起作用,因为即使存在红色类型,它有时也会返回 NULL redType。是否可以使用 GROUP BY 语句获得正确的 redType?
我正在寻找这个:
idDevice | redType
-----------------------------
1 | a
2 | b
或者这个结果:
idDevice | redType
-----------------------------
1 | c
2 | b
【问题讨论】:
-
我不明白这种情况下的“或”
标签: mysql group-by aggregate-functions