/** * Build the query for the avg calculation * * @param FabrikFEModelList &$listModel list model * @param array $labels Labels * * @return string sql statement */ protected function getAvgQuery(&$listModel, $labels = array()) { $fields = $listModel->getDBFields($this->getTableName(), 'Field'); $name = $this->getElement()->name; $field = FArrayHelper::getValue($fields, $name, false); if ($field !== false && $field->Type == 'time') { $db = $listModel->getDb(); $label = count($labels) == 0 ? "'calc' AS label" : 'CONCAT(' . implode(', " & " , ', $labels) . ') AS label'; $name = $this->getFullName(false, false); $table = $listModel->getTable(); $joinSQL = $listModel->buildQueryJoin(); $whereSQL = $listModel->buildQueryWhere(); return "SELECT SEC_TO_TIME(AVG(TIME_TO_SEC({$name}))) AS value, {$label} FROM " . $db->qn($table->db_table_name) . " {$joinSQL} {$whereSQL}"; } else { return parent::getAvgQuery($listModel, $labels); } }