SQL: 如何在聚合 Select 语句中包含非聚合
SQL: How to include non-aggregate in a aggregate Select statement
我在 Teradata 查询下面有这个:
create volatile table Sales_Record as (select max(a2.MDL_DESC),max(a3.DMD_DESC) FROM
MDL_DD_DESC a2, DMD_DD_DESC a3);
尝试使用以下内容执行查询时:
create volatile table Sales_Record as (select a1.SAL_DT SAL_DT,max(a2.MDL_DESC),max(a3.DMD_DESC) FROM SAL_DD_DT a1,
MDL_DD_DESC a2, DMD_DD_DESC a3);
出现错误:
Selected non-aggregate values must be part of the associated group.
如何将a1.SAL_DT SAL_DT
添加到聚合函数的查询中?
你需要 GROUP BY
clause:
select a1.SAL_DT SAL_DT,max(a2.MDL_DESC),max(a3.DMD_DESC)
FROM SAL_DD_DT a1, MDL_DD_DESC a2, DMD_DD_DESC a3
GROUP BY a1.SAL_DT
您确定这是加入这些表的方式吗?看起来你得到的是它们之间所有可能组合的产物,没有任何表格相互关联,这很少有人想要。
我在 Teradata 查询下面有这个:
create volatile table Sales_Record as (select max(a2.MDL_DESC),max(a3.DMD_DESC) FROM
MDL_DD_DESC a2, DMD_DD_DESC a3);
尝试使用以下内容执行查询时:
create volatile table Sales_Record as (select a1.SAL_DT SAL_DT,max(a2.MDL_DESC),max(a3.DMD_DESC) FROM SAL_DD_DT a1,
MDL_DD_DESC a2, DMD_DD_DESC a3);
出现错误:
Selected non-aggregate values must be part of the associated group.
如何将a1.SAL_DT SAL_DT
添加到聚合函数的查询中?
你需要 GROUP BY
clause:
select a1.SAL_DT SAL_DT,max(a2.MDL_DESC),max(a3.DMD_DESC)
FROM SAL_DD_DT a1, MDL_DD_DESC a2, DMD_DD_DESC a3
GROUP BY a1.SAL_DT
您确定这是加入这些表的方式吗?看起来你得到的是它们之间所有可能组合的产物,没有任何表格相互关联,这很少有人想要。