【问题标题】:Column X which is neither GROUPED nor AGGREGATED - StandardSQL / BigQueryX 列既不是 GROUPED 也不是 AGGREGATED - StandardSQL / BigQuery
【发布时间】:2019-07-09 09:34:35
【问题描述】:

我一直在阅读有关此的帖子,但许多建议的解决方案并没有按我的意愿工作。我正在尝试获取相同行的某些列的总和,然后在运行查询时选择所有其他列。

例如,当尝试对一列使用 group by 时,它不起作用。正如stackoverflow上的许多帖子/问题所建议的那样,解决方案是按选择部分中的所有列进行分组,这不会返回所需的结果。

好吧,这是我的问题,

我正在尝试运行以下查询:

SELECT
  date,
  campaign_id,
  ad_name,
  NOM_ENSEMBLE,
  SUM(impressions) AS IMPRESSIONS,
  SUM(clicks) AS CLICKS,
  SUM(spend) AS SPEND,
  Frequentation

FROM
  `my-project.dugut.for_analysis`

我有上面提到的以下列,例如,对于不同的展示次数和点击次数,我得到了相同的 NOM_ENSEMBLE,我想创建一个表格,其中包含“NOM_ENSEMBLE”和“DATE”以及展示次数、点击次数、支出的总和对于相同的 DATE/NOM_ENSEBMLE!

【问题讨论】:

  • 我们没有您输入的样本,也没有任何预期的输出。请在您的问题中包含您的表格的简化版本(足以说明您想要做什么),并说明您对该输入的预期输出是什么。

标签: python mysql sql google-bigquery data-analysis


【解决方案1】:

我想创建一个表格,其中包含“NOM_ENSEMBLE”和“DATE”以及同一 DATE/NOM_ENSEBMLE 的展示次数、点击次数和支出的总和!

如果您要进行聚合,则需要GROUP BYGROUP BY 应仅包含 SELECT 中的未聚合列。因此,查询应如下所示:

SELECT date, NOM_ENSEMBLE,
       SUM(impressions) AS IMPRESSIONS,
       SUM(clicks) AS CLICKS,
       SUM(spend) AS SPEND
FROM `my-project.dugut.for_analysis`
GROUP BY date, NOM_ENSEMBLE;

【讨论】:

  • 这确实有效。任何解释如何/为什么以这种方式运行 SQL 查询?谢谢!例如,当我使用 Pandas 来操作表中的数据时,它可以毫无问题地运行……为什么不使用 SQL 呢?
【解决方案2】:

抱歉,您的问题没有完全理解。我认为你可以使用窗口函数。

这里是引用 ROLLINGSUM 函数的链接:https://cloud.google.com/dataprep/docs/html/ROLLINGSUM-Function_60720435

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    相关资源
    最近更新 更多