2011-06-05 11 views
1

2つの列の中で最大の違いを返すクエリがあります。カラムの違い。可変トップの重複結果を返す

| result | 
    5 
    5 
    5 
    4 
    4 
    3 
    2 

いつもすべての結果がすべて返されるようにするにはどうすればよいですか? (5、5、5)

結果が異なり、時にはなど、

私が今持っているクエリのみ1つのトップの数がありますので、私は、LIMIT 3を探していないよ、次のようになります。

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

を働くかもしれないが、これは 'HAVING'句の使用の可能性ですか? (私はそれに精通していない、私はそれを参照する必要があります。) – marnir

答えて

0
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

私はまだすべての値を取得します。上の重複値ではありません。 – Tek

+0

@テック、答えを修正しました。 – Johan

0

テストしたが、それは

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