SELECT uid
, date
, SUM(USD) AS USD
, Ref_Nr
FROM my_table
GROUP
BY `date`, Ref_Nr, uid;
この場合、目的の結果を得るには、groupbyにRef_Nrが含まれている必要があります。サンプルデータに基づくuidは必要ありません。ただし、groupbyのselectからの非集計フィールドで常にグループ化することをお勧めします。これがmySQLで機能する唯一の理由は、拡張するためです。グループ化 ;他のほとんどのRDBMSは、groupbyで欠落している非集計フィールドに関するエラーをスローします。バージョン5.7.5以降では、この機能はデフォルトで無効になっていますが、以前はデフォルトで有効になっています。
グループ内でref_nrが必要な理由について:
mySQLエンジンは、日付でグループ化するだけでよいと考えています。したがって、すべてのref_NRが合計され、システムは表示する日付ごとに1つを選択するだけです。 uidについても同じです。しかし、それらはすべて同じなので、あなたは気にしません。これは、ref_nrの場合です。
したがって、問題を解決するには、ref_nr
を追加するだけです。 UID
を追加することでグループに追加します。 。したがって、selectからgroupbyへのすべての非集計列でgroupbyするのは良いことです。