我正在尝试对列中的数据进行“规范化”,因此其范围在0到1之间。我最初的计划是找到列的MAX值并执行以下计算:列/ MAX(列)。我遇到的问题是输出看起来像这样
这样下去...
显然,我的查询似乎在拉取该特定行的最大值,由于该行只有一个值,因此与所述值匹配,并且规范化数据始终为1。
这里是我用来查找网页浏览量的查询(数据来自GA,架构与默认值相同:]]
SELECT pageTitle, COUNT(*) AS pageviews FROM ( SELECT hits.page.pageTitle, hits.type, FROM `medicine-matter.131114627.ga_sessions_*` AS GA, UNNEST(GA.hits) AS hits WHERE type = 'PAGE' ) GROUP BY pageTitle ORDER BY pageviewDESC
然后我在另一个表中调用网页浏览量,如下所示:
SELECT pageviews, MAX(pageviews) as MAX, pageviews/ MAX(pageviews) as normal_pageview FROM `table` WHERE pageviews > 1 group by pageTitle, pageviews ORDER BY normal_pageview DESC
我对SQL非常陌生,因此如果我做的事情绝对太简单了,我只能道歉。
我正在尝试对列中的数据进行“规范化”,因此其范围在0到1之间。我的最初计划是找到该列的MAX值并执行以下计算:column / MAX(column)。 ...
#standardSQL
SELECT pageviews,
MAX(pageviews) OVER() max_pageviews,
ROUND(pageviews / MAX(pageviews) OVER(), 2) normal_pageviews
FROM `project.dataset.table`
在所有行中将numeric_expression缩放为[0,1],以最小和最大为上限