mysql中的集群表查询

时间:2012-02-20 11:56:20

标签: mysql select join temp-tables

我的mysql数据库中有一个表,其中包含一列score和一列cluster

score是float,cluster可以是NULL或整数。

NULL表示该行不属于任何群集,整数表示该行属于该群集。所以当然多行可以拥有相同的集群ID。

我想选择所有行为NULL或具有最高分数的群集。

是否可以在选择/联合星座或气候表中进行?什么是最快的方式?

1 个答案:

答案 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