【发布时间】:2021-01-11 03:38:50
【问题描述】:
我有一个 Presto SQL 表,看起来像这样:
|tenant|type|environment |
| |
| X | A |http:a.b.c(foo)/http:a.b.c(bar)/http:a.b.c(baz)|
| X | A |http:d.e.f(foo)/http:d.e.f(bar)/http:d.e.f(baz)|
| X | A |http:g.h.i(foo) |
| X | B |http:g.h.i(foo)/http:g.h.i(bar) |
所有列的类型都是 string。 我需要生成计算每个租户和类型的每种环境类型(foo、bar 或 baz)的输出。 IE。上面的数据应该是这样列出的:
X A foo 3
bar 2
baz 2
X B foo 1
bar 1
我一直在尝试这样的查询:
SELECT "tenant_id", "type_id", "environment", count(*) AS total_count
FROM "tenant_table"
WHERE "environment" LIKE '%foo%'
GROUP BY "tenant_id", "type_id", "environment";
但我没有得到我需要的输出。我在更改数据类型方面确实有一点灵活性。数据最初来自 CSV 文件。例如,如果将“环境”列的类型重新定义为数组之类的东西会使事情变得更容易,那么这是一个选项。任何解决此问题的帮助将不胜感激。谢谢。
【问题讨论】: