我的mysql数据库中有一个表,其中包含一列score
和一列cluster
。
score
是float,cluster
可以是NULL或整数。
NULL表示该行不属于任何群集,整数表示该行属于该群集。所以当然多行可以拥有相同的集群ID。
我想选择所有行为NULL或具有最高分数的群集。
是否可以在选择/联合星座或气候表中进行?什么是最快的方式?
答案 0 :(得分:1)
如果我理解你的问题,那么:
SELECT data.* FROM data WHERE data.cluster IS NULL
UNION
SELECT data.*
FROM (SELECT cluster, MAX(score) AS score FROM data GROUP BY cluster)
AS max_score
INNER JOIN data ON data.cluster = max_score.cluster
AND data.score = max_score.score