I´ve build up a view with 2 sql aggregation fields (one for count, the other to sum up some data).
Now I want some of the aggreageted field to be sortable. If I then click on the table head to sort the data it will break.

Error message:

# user warning: Can't group on 'node_data_field_spieler_field_2min_value' query: SELECT COUNT(node.nid) AS nid, node_data_field_spieler.field_spieler_nid AS node_data_field_spieler_field_spieler_nid, node.type AS node_type, node.vid AS node_vid, SUM(node_data_field_spieler.field_7meter_value) AS node_data_field_spieler_field_7meter_value, SUM(node_data_field_spieler.field_7meter_tore_value) AS node_data_field_spieler_field_7meter_tore_value, SUM(node_data_field_spieler.field_tore_value) AS node_data_field_spieler_field_tore_value, SUM(node_data_field_spieler.field_2min_value) AS node_data_field_spieler_field_2min_value, SUM(node_data_field_spieler.field_gelb_value) AS node_data_field_spieler_field_gelb_value, SUM(node_data_field_spieler.field_rot_value) AS node_data_field_spieler_field_rot_value, node_data_field_liga_spiel.field_liga_spiel_nid AS node_data_field_liga_spiel_field_liga_spiel_nid FROM node node LEFT JOIN content_type_statistik node_data_field_spieler ON node.vid = node_data_field_spieler.vid LEFT JOIN content_field_liga_spiel node_data_field_liga_spiel ON node.vid = node_data_field_liga_spiel.vid WHERE node.type in ('statistik') GROUP BY node_data_field_spieler_field_spieler_nid, node_data_field_spieler_field_2min_value ORDER BY node_data_field_spieler_field_tore_value DESC, node_data_field_spieler_field_tore_value DESC, node_data_field_spieler_field_2min_value ASC in C:\Users\Oliver Pocher\Desktop\My Dropbox\Homepage\drupal\sites\all\modules\views\includes\view.inc on line 775.
# user warning: Can't group on 'node_data_field_spieler_field_2min_value' query: SELECT COUNT(node.nid) AS nid, node_data_field_spieler.field_spieler_nid AS node_data_field_spieler_field_spieler_nid, node.type AS node_type, node.vid AS node_vid, SUM(node_data_field_spieler.field_7meter_value) AS node_data_field_spieler_field_7meter_value, SUM(node_data_field_spieler.field_7meter_tore_value) AS node_data_field_spieler_field_7meter_tore_value, SUM(node_data_field_spieler.field_tore_value) AS node_data_field_spieler_field_tore_value, SUM(node_data_field_spieler.field_2min_value) AS node_data_field_spieler_field_2min_value, SUM(node_data_field_spieler.field_gelb_value) AS node_data_field_spieler_field_gelb_value, SUM(node_data_field_spieler.field_rot_value) AS node_data_field_spieler_field_rot_value FROM node node INNER JOIN content_field_liga_spiel node_data_field_liga_spiel ON node.vid = node_data_field_liga_spiel.vid LEFT JOIN content_type_statistik node_data_field_spieler ON node.vid = node_data_field_spieler.vid WHERE (node.type in ('statistik')) AND (node_data_field_liga_spiel.field_liga_spiel_nid IN ('1070', '1071', '740')) GROUP BY node_data_field_spieler_field_spieler_nid, node_data_field_spieler_field_2min_value ORDER BY node_data_field_spieler_field_tore_value DESC, node_data_field_spieler_field_tore_value DESC, node_data_field_spieler_field_2min_value ASC in

Comments

abaddon’s picture

ditto - i disabled table sorting as a workaround

capellic’s picture

Same here. Not able to use table sorting in RC2.

goldlilys’s picture

Subscribing

jfolwarski’s picture

The reason this is happening is because when the title is clicked views calls the function add_orderby which forces the order by and group by to be the same. A quick work around that worked for me was switching in query.inc line 844 in the views module from this:

if ($this->groupby && $table) {
  $this->add_groupby($as);
}

to this:

if ($this->groupby && $table && !isset($this->fields[$as]['aggregate'])) {
  $this->add_groupby($as);
}

Didn't really want to alter any other modules but I couldn't find a nice work around with just changing the views_groupby module.

gg4’s picture

subscribe.