的aggregate_function我有这个表MySQL的:GROUP BY和与条件
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
有红色color
至少一个type
。
我想获得每个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
为什么使用MAX()函数 – Strawberry