SELECT uid
, date
, SUM(USD) AS USD
, Ref_Nr
FROM my_table
GROUP
BY `date`, Ref_Nr, uid;
I det här fallet måste du ha Ref_Nr i gruppen av för att få önskat resultat. uid, baserat på exempeldata, behövs inte; men det är klokt att alltid gruppera efter de icke aggregerade fälten från markeringen i gruppen efter. Den enda anledningen till att detta fungerar i mySQL är att de förlänger gruppen av ; de flesta andra RDBMS skulle skicka ett felmeddelande om de saknade icke aggregerade fälten i gruppen av. I version 5.7.5 och senare är den här funktionen inaktiverad som standard där den tidigare var aktiverad som standard.
Angående varför ref_nr behövs i gruppen av:
MySQL-motorn tror att du bara vill gruppera efter datum. Så alla ref_NR:s summeras och systemet väljer helt enkelt en per datum att visa; samma för uid; men eftersom de alla är likadana; du bryr dig inte. Detta är fallet med ref_nr.
Så för att lösa problemet lägger du bara till ref_nr
lägg till UID
till gruppen . Så det är bra från till grupp efter alla icke aggregerade kolumner från välj till gruppen efter.