Я хочу выразить следующий mysql
запрос в QueryDsl
:
SELECT AVG(dd.val) as median_val
FROM (
SELECT d.balance as val, @rownum:=@rownum+1 as `row_number`, @total_rows:=@rownum
FROM message_entity d, (SELECT @rownum:=0) r
WHERE d.balance is NOT NULL
-- put some where clause here
ORDER BY d.balance
) as dd
WHERE dd.row_number IN ( FLOOR((@total_rows+1)/2), FLOOR((@total_rows+2)/2) );
Этот запрос используется для получения MEDIAN
некоторых значений столбцов в базе данных.Сложность заключается в выражении пользовательских переменных sql.