Запрос кластеризованной таблицы в MySQL - PullRequest
0 голосов
/ 20 февраля 2012

В моей базе данных mysql есть таблица, в которой есть столбец score и столбец cluster.

score - это число с плавающей запятой, cluster может быть NULL или целым числом.

NULL означает, что строка не принадлежит ни одному кластеру, целое число означает, что это так. поэтому, конечно, несколько строк могут иметь одинаковый идентификатор кластера.

Я хочу выбрать все строки, которые имеют значение NULL или кластера с наибольшим количеством баллов.

Возможно ли это сделать в созвездии "выбор", "созвездие выбор / объединение" или с таблицами температур? какой самый быстрый путь?

1 Ответ

1 голос
/ 20 февраля 2012

Если я понял ваш вопрос, то:

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
...