gpt4 book ai didi

sql - 在 SQL 中,我可以使用 like 或 contains 子句连接数据以排除某些值吗?

转载 作者:行者123 更新时间:2023-12-03 16:14:01 25 4
gpt4 key购买 nike

我正在开展一个项目,从 BigQuery 中的 Google Analytics 数据构建一些查询,以复制某个特定 KPI 的一些报告,我有一个表格,其中包含我需要从 Google Analytics 数据中排除的网站列表,以便获取正确的度量。

我的 list 可能有以下内容:
网站名称.com

但是,我需要将其与 BigQuery 中的 eventLabel 列相匹配,其中 URL 可能返回为:
http://sitename.com/subpage/extra-subpage

我不能做 Not In 因为这需要直接匹配,我尝试使用 like 语句但是我收到以下错误

Scalar subquery produced more than one element

我真的不知道该怎么做,我想知道我是否需要做一个查询来说明字符串是否匹配(因为如果我使用内部连接然后使用这个新表来执行排除,我可以让它工作因为我可以保留 eventLabel,然后基于此做我的 Not In?
SELECT Distinct
h.eventinfo.eventAction eventAction,
h.eventinfo.eventlabel eventlabel

FROM `projectName.ga_sessions_*`, unnest(Hits) h


WHere
_TABLE_SUFFIX BETWEEN "20190101" AND FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))

and type = 'EVENT'
and h.eventInfo.eventCategory = 'EventName'

and Replace(Replace(Replace(h.eventInfo.eventLabel,'http://',''),'https://',''),'www.','')
Not like (select concat(ThirdPartyURL,'%') from `projectName.datasetName.ExclusionList`)

我希望以上是有道理的。

TIA。

最佳答案

重现您的问题后,解决方案是使用 NOT IN而不是 NOT LIKE如下:

WITH `projectName.datasetName.ExclusionList` AS
(SELECT 'label1' AS ThirdPartyURL UNION ALL
SELECT 'label2')

SELECT DISTINCT h.eventinfo.eventAction eventAction,
h.eventinfo.eventlabel eventlabel
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
unnest(Hits) h
WHERE _TABLE_SUFFIX BETWEEN "20170801" AND "20170802"
AND TYPE = 'EVENT'
AND h.eventInfo.eventCategory = 'EventName'
AND Replace(Replace(Replace(h.eventInfo.eventLabel, 'http://', ''), 'https://', ''), 'www.', '')
NOT IN
(SELECT ThirdPartyURL FROM `projectName.datasetName.ExclusionList`)

这是 link到 BigQuery 相关的 SQL 文档

关于sql - 在 SQL 中,我可以使用 like 或 contains 子句连接数据以排除某些值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55593882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com