Разница в колонках. Возвращаем переменные top дубликаты результатов - PullRequest
1 голос
/ 05 июня 2011

У меня есть запрос, который возвращает наибольшую разницу в двух столбцах. Допустим, это что-то вроде:

| result |
    5
    5
    5
    4
    4
    3
    2

Как я могу заставить его каждый раз возвращать все лучшие результаты? (5, 5, 5)

Я не ищу LIMIT 3, так как результаты различаются, и иногда есть только один верхний номер и т. Д.

Запрос, который у меня сейчас есть, выглядит следующим образом:

SELECT MAX(column1 - column2) as result
FROM table
WHERE othercolumn = somecondition
GROUP by id
ORDER BY results asc

Ответы [ 2 ]

0 голосов
/ 05 июня 2011
SELECT MAX(column1 - column2) as result
FROM table
WHERE othercolumn = somecondition
GROUP by id
HAVING result = 
  (select max(column1 - column2) FROM table WHERE othercolumn = somecondition)
ORDER BY id;
0 голосов
/ 05 июня 2011

Не проверено, но может работать

select *,column1-column2 as result from table where column1 - column2 = 
(SELECT (column1 - column2) as G
FROM table
ORDER BY G DESC limit 1)
...