【问题标题】:Group by in SQL returning error: Selected non-aggregate values must be part of the associated groupSQL 中的 Group by 返回错误:选定的非聚合值必须是关联组的一部分
【发布时间】:2018-10-18 18:25:07
【问题描述】:

我有一个如下所示的表格:

       date      store   flag
1    5/4/2018      a       1
2    5/4/2018      a       1
3    5/3/2018      b       1
4    5/3/2018      b       0
5    5/2/2018      a       1
6    5/2/2018      b       0

我想按日期分组并存储和汇总标志数

即下面的table_a:

       date      store   total_flag
1    5/4/2018      a       2
3    5/3/2018      b       1
4    5/2/2018      a       1
5    5/2/2018      b       0

这就是我正在尝试的:

create multiset volatile table flag_summary as (
 sel table_a.*, SUM(table_a.flag) as total_flag
 group by date, store
)
with data primary index (date, store) on commit preserve rows;

上面给了我一个错误,“创建表失败。[3504] 选定的非聚合值必须是关联组的一部分。

【问题讨论】:

  • 除了date/store之外还有其他列,要么将它们添加到group by,要么对它们应用聚合,如min(additionalcolumn)

标签: sql group-by teradata


【解决方案1】:

您正在选择所有tableA(包括标志)。您应该只提取日期和商店,因为您想要标志的总和。

SELECT date, store, SUM(flag)
FROM tableA
GROUP BY date, store

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 2013-06-27
    • 1970-01-01
    • 2020-10-23
    • 2015-10-05
    • 1970-01-01
    • 2020-05-14
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多