I have a resultset that is like this:
ID | name  | myvalue
 1 | A1    | 22
 2 | A2    | 22
 3 | A3    | 21
 4 | A4    | 33
 5 | A5    | 33
 6 | A6    | 10
 7 | A7    | 10
 8 | A8    | 10
 9 | A9    | 5
what i want, is to include only rows that contains the highest "myvalue" available (in the previous example is 33), then:
ID | name  | myvalue
 4 | A4    | 33
 5 | A5    | 33
IE the query should pick the highest "myvalue" available (IE 33) and it should remove the rows that have myvalue < 33
SELECT ..... WHERE myvalue = THE_HIGHEST_OF(myvalue)
Hoping to have been clear...
thank you in advance
edit:
my current query is
SELECT 
    *,
    (very long code that returns a integer as relevance score) AS myvalue
FROM
    mytable
HAVING
    myvalue = ?????
ORDER BY
    myvalue DESC
now the highest myvalue can be 10, 20, 30, any number... in the final resultset i want to include only the rows that have the highest possible relevance score
ive tried using GROUP BY, but i always need to repeat the...
    (very long code that returns a integer as relevance score) AS myvalue
...twice
We used the MAX() function within a subquery to find the maximum value, and returned the whole row with the outer query.
To find the maximum value of a column, use the MAX() aggregate function; it takes a column name or an expression to find the maximum value. In our example, the subquery returns the highest number in the column grade (subquery: SELECT MAX(grade) FROM student ).
To get one row with the highest count, you can use ORDER BY ct LIMIT 1 : SELECT c. yr, count(*) AS ct FROM actor a JOIN casting c ON c. actorid = a.id WHERE a.name = 'John Travolta' GROUP BY c.
The MAX() function returns the largest value of the selected column.
SELECT * FROM t WHERE myValue IN (SELECT max(myValue) From t);
###See this SQLFiddle
Edit:
As per discussion with OP.
OP wants to use alias in WHERE clause. But you can only use column aliases in GROUP BY, ORDER BY, or HAVING clauses.
Look at this answer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With