ORA-00979: NOT A GROUP BY Expression 在 Oracle 中处理日期

ORA-00979: NOT A GROUP BY Expression Working with Dates in Oracle

我有一个名为 sDateTime 的日期数据类型列,我希望按日期分组选择数据,实际上我想显示特定月份每一天的销售额。

sDateTime 是 Date 数据类型,但它也存储时间,因此我需要将其转换为日期格式。我正在使用以下抛出异常的查询 ORA-00979 请任何人帮助我。

SELECT sdatetime   AS Sale_Date,
       SUM(amount) AS Sale
FROM   sales
GROUP  BY To_char(sdatetime, 'yyyy-MM-dd')
HAVING sdatetime BETWEEN To_date('2015-01-01', 'yyyy-MM-dd') AND
                         To_date('2015-01-09', 'yyyy-MM-dd') 

像这样重写查询

select to_char(sDateTime,'yyyy-MM-dd') AS Sale_Date, SUM(Amount) AS Sale 
FROM SALES  where sDateTime between to_date('2015-01-01','yyyy-MM-dd')
     and to_date('2015-01-09','yyyy-MM-dd') 
GROUP BY to_char(sDateTime,'yyyy-MM-dd')