Mysql 如何在构建表时从“case-when”表达式中的else中删除结果
我正在尝试使用SQL代码在Chartio中构建一个图形,我想要3 结果中的类别:运行成本、存储成本和其他成本。 问题是我还有一个我不想要的类别出现在图表中Mysql 如何在构建表时从“case-when”表达式中的else中删除结果,mysql,sql,Mysql,Sql,我正在尝试使用SQL代码在Chartio中构建一个图形,我想要3 结果中的类别:运行成本、存储成本和其他成本。 问题是我还有一个我不想要的类别出现在图表中 SELECT {DATE_BUCKET.BUCKET('TIMESTAMP_ADD(CAST(`usage_start_time` AS TIMESTAMP), INTERVAL {UTC_OFFSET.RAW} HOUR)', UTC_OFFSET)} AS `Date_BucketOfCreated_At`, CASE w
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
因为它是一个新字段,所以不能只向查询中添加where子句。但是您可以使用where从查询结果中进行选择 从中选择* -原始查询 “autre”的原产地在哪里
您可以使用WHERE条件筛选出其他类别。刚刚尝试了这个但无法识别的名称:Origin在[43:7]的u addedThank行,但选择了list expression references列用法\u start\u time,它在[5:54]既没有分组也没有聚合当我像你的回答一样更改它时出现如果原始查询有效,那么没有理由从中查询不起作用我只是发现了我的错误我错放了where,忘记将group和order指令放在select中*