查找MAX列BigQuery SQL

问题描述 投票:0回答:2

我正在尝试对列中的数据进行“规范化”,因此其范围在0到1之间。我最初的计划是找到列的MAX值并执行以下计算:列/ MAX(列)。我遇到的问题是输出看起来像这样

enter image description here

这样下去...

显然,我的查询似乎在拉取该特定行的最大值,由于该行只有一个值,因此与所述值匹配,并且规范化数据始终为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)。 ...

sql google-analytics google-bigquery normalization
2个回答
2
投票
#standardSQL SELECT pageviews, MAX(pageviews) OVER() max_pageviews, ROUND(pageviews / MAX(pageviews) OVER(), 2) normal_pageviews FROM `project.dataset.table`

0
投票

在所有行中将numeric_expression缩放为[0,1],以最小和最大为上限

© www.soinside.com 2019 - 2024. All rights reserved.