SELECT uid
, date
, SUM(USD) AS USD
, Ref_Nr
FROM my_table
GROUP
BY `date`, Ref_Nr, uid;
Neste caso você deve ter Ref_Nr no grupo por para obter os resultados desejados. uid, baseado em dados de amostra, não é necessário; mas é aconselhável sempre agrupar pelos campos não agregados da seleção no grupo por. A única razão pela qual isso funciona no mySQL é porque eles estendem o grupo por ; a maioria dos outros RDBMS geraria um erro sobre os campos não agregados ausentes no grupo por. Na versão 5.7.5 e superior, este recurso é desabilitado por padrão quando habilitado por padrão antes.
Por que ref_nr é necessário no grupo:
O mecanismo mySQL acredita que você deseja apenas agrupar por data. Assim, todos os ref_NR's são somados e o sistema simplesmente escolhe um por data para exibir; o mesmo para uid; mas como são todos iguais; você não se importa. Este não é o caso do ref_nr.
Então, para resolver o problema, basta adicionar
ref_nr
para o grupo por e fora do bom de adicionar UID
. Portanto, é bom de para agrupar por todas as colunas não agregadas da seleção para o grupo por.