Q:

Invalid use of group function

SELECT COUNT(Value) FROM (SELECT * FROM `***` AS t2
WHERE Ygeo > 0 AND DATEDIFF(SpeedBeginDate, CURDATE()) > 14 AND Sum(Loss) > 1000
GROUP BY HEX(Hash1)) AS t1;
В чем может быть проблема?

A:

Вы используете агрегатную функцию SUM в конструкции WHERE. Этого делать нельзя. Для использования агрегатных функций в условии надо использовать HAVING:
SELECT
    COUNT(Value)
FROM
(
    SELECT
        *
    FROM
        `***` AS t2
    WHERE
        Ygeo > 0 
        AND DATEDIFF(SpeedBeginDate, CURDATE()) > 14 
    GROUP BY
        HEX(Hash1)
    HAVING
        Sum(Loss) > 1000 
) AS t1;

