Das Problem ist Ihre Unterabfrage mit select count(1)
Teil. Nur weil es eine Zählung enthält, ist es noch lange kein Aggregat. Es ist immer noch eine Unterabfrage, die auf jede Zeile angewendet wird und wie Sie sehen können, verwendet sie den Wert c0.tdata.tariff
die nicht Teil der Gruppe ist.