我在尝试运行以下查询时似乎遇到此错误:
SELECT
to_char(EFFECTIVE_DT,'YYYY-MM') as YYYYMM,
--EFFECTIVE_DT,
AH01_PAYMENT_STATUS_CTD,
TSYS_ACCT_ID
FROM OIS_TSYS.AH_CYCLE_HIST
WHERE 1=1
AND EFFECTIVE_DT BETWEEN '01-MAY-2017' AND '31-MAY-2017'
GROUP BY 2
ORDER BY 1
错误:ORA-00979:不是GROUP BY表达式
我正在尝试按日期分组,因为我每天都会获得每个帐户的结果。
Result set:
65589 N 03-MAY-17
65590 S 03-MAY-17
65591 M 03-MAY-17
65592 F 03-MAY-17
65617 G 03-MAY-17
任何帮助都是惊人的。
最佳, Saad的
答案 0 :(得分:0)
当您按"分组2"时,所有其他列必须具有聚合函数,如(sum,avg,min,max,..)
" 1 = 1"很没用了
答案 1 :(得分:0)
要获得所需结果,请使用以下查询: 当你在任何查询中应用group by子句时,如果select子句中有多个colum,除了sum,count,min,max等聚合函数之外,你不能只在group by子句中放置一列。所以在你的情况下你必须把你在select子句中选择的所有三列放在组中。
SELECT
TSYS_ACCT_ID,
AH01_PAYMENT_STATUS_CTD,
to_char(EFFECTIVE_DT,'YYYY-MM') as YYYYMM
FROM OIS_TSYS.AH_CYCLE_HIST
WHERE EFFECTIVE_DT BETWEEN '01-MAY-2017' AND '31-MAY-2017'
GROUP BY
TSYS_ACCT_ID,
AH01_PAYMENT_STATUS_CTD,
to_char(EFFECTIVE_DT,'YYYY-MM')
ORDER BY 1