getFirstLine($apiKey); $timestamps = array_column($data, 'ts'); $line1 = array_column($data, 'count_200'); $line2 = array_column($data, 'count_404'); $line3 = array_column($data, 'count_500'); return $this->addEmptyDays([$timestamps, $line1, $line2, $line3]); } private function getFirstLine(int $apiKey): array { $query = ( 'SELECT EXTRACT(EPOCH FROM date_trunc(:resolution, event.time + :offset))::bigint AS ts, COUNT(DISTINCT event.id) AS url_count, COUNT(DISTINCT ( CASE WHEN event.http_code=200 OR event.http_code IS NULL THEN event.id END) ) AS count_200, COUNT(DISTINCT ( CASE WHEN event.http_code = 404 THEN event.id END) ) AS count_404, COUNT(DISTINCT ( CASE WHEN event.http_code IN(403, 500) THEN event.id END) ) AS count_500 FROM event WHERE event.key = :api_key AND event.time >= :start_time AND event.time <= :end_time GROUP BY ts ORDER BY ts' ); return $this->execute($query, $apiKey); } }