Как удалить результаты из else в выражении «case when» при построении таблицы - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь построить график в Chartio, используя код SQL, я хочу 3 категории в моих результатах: RunningCosts, StorageCosts и OtherCosts. Проблема в том, что у меня есть другая категория, которую я не хочу, которая появляется на графике.

SELECT {DATE_BUCKET.BUCKET('TIMESTAMP_ADD(CAST(`usage_start_time` AS TIMESTAMP), INTERVAL {UTC_OFFSET.RAW} HOUR)', UTC_OFFSET)} AS `Date_BucketOfCreated_At`,
        CASE when((sku.description LIKE "%Licensing Fee%"
                  OR sku.description LIKE "%running%")
                  AND
                    (SELECT value
                     FROM UNNEST(labels)
                     WHERE KEY = "env")="prod"
                  AND
                    (SELECT value
                     FROM UNNEST(labels)
                     WHERE KEY="family")="gaming")THEN "RunningCosts"
            WHEN ((sku.description LIKE "%storage%"
                  OR sku.description LIKE "%SSD%")
                  AND
                    (SELECT value
                     FROM UNNEST(labels)
                     WHERE KEY = "env")="prod"
                  AND
                    (SELECT value
                     FROM UNNEST(labels)
                     WHERE KEY="family")="gaming")THEN "StorageCosts"
            WHEN (sku.description NOT LIKE "%storage%"
                  AND sku.description NOT LIKE "%SSD%"
                  AND sku.description NOT LIKE "%Licensing Fee%"
                  AND sku.description NOT LIKE "%running%"
                  AND
                    (SELECT value
                     FROM UNNEST(labels)
                     WHERE KEY = "env")="prod"
                  AND
                    (SELECT value
                     FROM UNNEST(labels)
                     WHERE KEY="family")="gaming") THEN "OtherCosts"
            ELSE "autre"
        END AS `Origin`,
         ROUND(SUM(cost), 2) AS charges


FROM gcp.gcp_billing_export_v1_00A342_468C35_E1E69C
GROUP BY Date_BucketOfCreated_At,
         Origin
ORDER BY Date_BucketOfCreated_At

1 Ответ

0 голосов
/ 19 июня 2019

Поскольку это новое поле, вы не можете просто добавить к вашему запросу предложение where. Но вы можете выбрать из результата этого запроса, используя where.

SELECT * FROM (
-- ORIGINAL QUERY
) WHERE Origin <> 'autre'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...