![](/img/trans.png)
[英]AWS Athena: How can we get integer value as string with thousand comma separator in AWS Athena
[英]How to get part of the String before last delimiter in AWS Athena
假設我在 AWS Athena 中有下表
+----------------+
| Thread |
+----------------+
| poll-23 |
| poll-34 |
| pool-thread-24 |
| spartan.error |
+----------------+
我需要從最后一個分隔符之前的列中提取字符串的一部分(這里 '-' 是分隔符)
基本上需要一個可以給我輸出的查詢
+----------------+
| Thread |
+----------------+
| poll |
| poll |
| pool-thread |
| spartan.error |
+----------------+
我還需要一個分組查詢,它可以生成這個
+---------------+-------+
| Thread | Count |
+---------------+-------+
| poll | 2 |
| pool-thread | 1 |
| spartan.error | 1 |
+---------------+-------+
我使用 LEFT()、RIGHT()、LOCATE()、SUBSTRING_INDEX() 函數嘗試了各種形式的 MySql 查詢,但似乎 athena 不支持所有這些函數。
您可以使用regexp_replace()
刪除最后一個'-'
后面的字符串部分:
select regexp_replace(thread, '-[^-]*$'; ''), count(*)
from mytable
group by regexp_replace(thread, '-[^-]*$', '')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.