Google bigquery 如何从带有count的表中部分筛选子字符串

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, "

我正在尝试从字符串中筛选子字符串。我是这样做到的。但我可以打印计数值,但它总是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, "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
字段中的单词