SELECT t.date, SUM(t.a), SUM(t.b) FROM ( SELECT `date`, cnt AS a, 0 AS b FROM `table` WHERE `name` = 'a' UNION SELECT `date`, 0 AS a, cnt AS b FROM `table` WHERE `name` = 'b' ) t GROUP BY t.date
register_shutdown_function(function () {
$error = error_get_last();
if ($error && ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR)) {
if (strpos($error['message'], 'Allowed memory size') === 0) { // если кончилась память
ini_set('memory_limit', (intval(ini_get('memory_limit'))+64)."M"); // выделяем немножко что бы доработать корректно
Log::error("PHP Fatal: not enough memory in ".$error['file'].":".$error['line']);
} else {
Log::error("PHP Fatal: ".$error['message']." in ".$error['file'].":".$error['line']);
}
// ... завершаемая корректно ....
}
})
ob_start('ob_end');
...
function ob_end($outputData)
{
$error = error_get_last();
if (is_array($error) && in_array($error['type'], array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR)))
{
/* Фатальная ошибка, отдаем 500 */
}
return $outputData;
}
DATASOURCE_ID: UUID
TIMESTAMP: DATETIME
VALUE: DOUBLE
SELECT *
FROM DATA_TABLE
WHERE
DATASOURCE_ID = :ID AND
TIMESTAMP = (SELECT MAX(TIMESTAMP) FROM DATA_TABLE WHERE DATASOURCE_ID = :ID)