VERSION 2 NODE aggregate SQL > SELECT workspaceId, apiId, keyId, countIfState((deniedReason = '') OR (deniedReason IS NULL)) AS success, countIfState(deniedReason = 'RATE_LIMITED') AS rateLimited, countIfState(deniedReason = 'USAGE_EXCEEDED') AS usageExceeded, toStartOfDay(fromUnixTimestamp64Milli(time)) AS time FROM key_verifications GROUP BY workspaceId, apiId, keyId, time TYPE materialized DATASOURCE mv__daily_verifications ENGINE "AggregatingMergeTree" ENGINE_PARTITION_KEY "toYYYYMM(time)" ENGINE_SORTING_KEY "workspaceId, apiId, keyId, time"