Fix SQL GROUP BY with subquery - use inner_q alias
This commit is contained in:
parent
c07438d0cc
commit
4a3ce1ec73
|
|
@ -129,9 +129,10 @@ class ServerDetailController extends Model
|
||||||
AVG(inner_q.value) as value,
|
AVG(inner_q.value) as value,
|
||||||
inner_q.name,
|
inner_q.name,
|
||||||
inner_q.unit,
|
inner_q.unit,
|
||||||
|
inner_q.metric_id,
|
||||||
DATE_FORMAT(inner_q.created_at, '{$bucketFormat}') as time_bucket
|
DATE_FORMAT(inner_q.created_at, '{$bucketFormat}') as time_bucket
|
||||||
FROM (
|
FROM (
|
||||||
SELECT sm.value, mn.name, mn.unit, sm.created_at
|
SELECT sm.value, mn.name, mn.unit, mn.id as metric_id, sm.created_at
|
||||||
FROM server_metrics sm
|
FROM server_metrics sm
|
||||||
JOIN metric_names mn ON sm.metric_name_id = mn.id
|
JOIN metric_names mn ON sm.metric_name_id = mn.id
|
||||||
WHERE sm.server_id = :id
|
WHERE sm.server_id = :id
|
||||||
|
|
@ -307,21 +308,21 @@ class ServerDetailController extends Model
|
||||||
} elseif ($aggregateMinutes < 60) {
|
} elseif ($aggregateMinutes < 60) {
|
||||||
// Минуты — группировка по минутам
|
// Минуты — группировка по минутам
|
||||||
return [
|
return [
|
||||||
'groupBy' => "GROUP BY mn.id, DATE_FORMAT(sm.created_at, '%Y-%m-%d %H:%i')",
|
'groupBy' => "GROUP BY inner_q.metric_id, DATE_FORMAT(inner_q.created_at, '%Y-%m-%d %H:%i')",
|
||||||
'format' => '%Y-%m-%d %H:%i',
|
'format' => '%Y-%m-%d %H:%i',
|
||||||
'aggregate_minutes' => $aggregateMinutes
|
'aggregate_minutes' => $aggregateMinutes
|
||||||
];
|
];
|
||||||
} elseif ($aggregateMinutes < 1440) {
|
} elseif ($aggregateMinutes < 1440) {
|
||||||
// Часы — группировка по часам
|
// Часы — группировка по часам
|
||||||
return [
|
return [
|
||||||
'groupBy' => "GROUP BY mn.id, DATE_FORMAT(sm.created_at, '%Y-%m-%d %H:00')",
|
'groupBy' => "GROUP BY inner_q.metric_id, DATE_FORMAT(inner_q.created_at, '%Y-%m-%d %H:00')",
|
||||||
'format' => '%Y-%m-%d %H:00',
|
'format' => '%Y-%m-%d %H:00',
|
||||||
'aggregate_minutes' => $aggregateMinutes
|
'aggregate_minutes' => $aggregateMinutes
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
// Дни — группировка по дням
|
// Дни — группировка по дням
|
||||||
return [
|
return [
|
||||||
'groupBy' => "GROUP BY mn.id, DATE_FORMAT(sm.created_at, '%Y-%m-%d')",
|
'groupBy' => "GROUP BY inner_q.metric_id, DATE_FORMAT(inner_q.created_at, '%Y-%m-%d')",
|
||||||
'format' => '%Y-%m-%d',
|
'format' => '%Y-%m-%d',
|
||||||
'aggregate_minutes' => $aggregateMinutes
|
'aggregate_minutes' => $aggregateMinutes
|
||||||
];
|
];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue