Google bigquery 如何从带有count的表中部分筛选子字符串
我正在尝试从字符串中筛选子字符串。我是这样做到的。但我可以打印计数值,但它总是1。我需要打印实数Google bigquery 如何从带有count的表中部分筛选子字符串,google-bigquery,Google Bigquery,我正在尝试从字符串中筛选子字符串。我是这样做到的。但我可以打印计数值,但它总是1。我需要打印实数 #standardSQL WITH `project.dataset.table` AS ( select term from( select LOWER(REGEXP_EXTRACT(textPayload,"Search term:(.*)")) as term from `log_dataset.backend_*` where REGEXP_CONTAINS(textPayload, "
#standardSQL
WITH `project.dataset.table` AS (
select term from(
select LOWER(REGEXP_EXTRACT(textPayload,"Search term:(.*)")) as term from `log_dataset.backend_*`
where REGEXP_CONTAINS(textPayload, "Search term:.*")=true
)
group by term
order by count(*) desc
), temp AS (
SELECT term, COUNT(1) `count`
FROM `project.dataset.table`
GROUP BY term
)
SELECT term , `count` FROM (
SELECT term, `count`, STARTS_WITH(prev_str, term) AND
ARRAY_LENGTH(REGEXP_EXTRACT_ALL(term, r' ')) = ARRAY_LENGTH(REGEXP_EXTRACT_ALL(prev_str, r' ')) AS flag
FROM (
SELECT term, `count`, LAG(term) OVER(ORDER BY term DESC) AS prev_str
FROM temp
)
)
WHERE NOT IFNULL(flag, FALSE)
这是一个术语列表
anderstand
anderstan
andersta
anderst
understand
understan
understa
underst
unders
under
understand i
understand i
understand it
understand it
understand it y
understand it ye
understand it yes
understand it yes it
understand it yes it
期望输出为
Row str count
1 understand it yes it 2
2 anderstand 1
3 understand it yes 1
4 understand 1
5 understand it 2
要获得所需的输出,可以使用以下语句:
SELECT
str,
COUNT(*) AS count
FROM
`project_id.dataset.table`
GROUP BY
str
此外,该运算符可用于过滤str
字段中的单词