стараясь как можно лучше угадать, что у вас есть, ваш запрос должен был бы быть так или иначе скорректирован, что-то вроде
SELECT
sh.dts,
cast( if( preAgg1.totalPerCatSort = 1, sh.status, ' ' ) as char(20))
as SingleStatus,
sh.category,
sh.sort_by,
u.initials AS initals
FROM
database1.table1 AS sh,
database2.user AS u,
( select
t1.category,
t1.sort_by,
max(dts) maxdts,
count(*) totalPerCatSort
from
database1 t1
group by
t1.category,
t1.sort_by ) preAgg1
WHERE
sh.userid = u.userID
and sh.sort_by = preAgg1.sort_by
and sh.category = preAgg1.category
and sh.dts = preAgg1.maxdts
and id = 123456 ?? Should this actually be the UserID column ??
ORDER BY
sort_by,
category
возможно, вам придется применить «ID = 123456» в подвыборе «preAgg1», но, опять же, вы не уверены, к какому идентификатору применим этот столбец / таблица, в противном случае вы могли бы иметь другие записи даты другими «пользователями». "и не то же самое для одного кандидата, которого вы ищете ... Ваш звонок.
Если вы хотите получить ВСЕ записи, я бы просто удалил ваш квалификатор "and ID = 123456", и все должно быть в порядке