SQL Developer Distinct 给出了 ORA-00936

SQL Developer Distinct gives ORA-00936

我尝试创建一个查询,返回有多少客户已注册到我们的系统(使用 REGISTERED_ID)。然而,当客户注册后,他可以用另一辆车再次注册。我想按月归还寄存器的数量。我数 X__INSDATE 因为基本上我可以数任何东西,我只需要一个数字。错误指向 DISTINCT,我尝试使用 having 而不是 where,但我可能错过了一些东西。

我使用 Oracle SQL Developer 4.0.0.12

SELECT
  TRUNC(X__INSDATE, 'MONTH') as HONAP,
  COUNT(X__INSDATE),
  DISTINCT REGISTERED_ID
FROM
  DATABASE.data_history
WHERE
  DATABASE.data_history.X__INSDATE >= to_date('2013-JÚL. -01', 'YYYY-MON-DD')
GROUP BY TRUNC(X__INSDATE, 'MONTH') ORDER BY HONAP;

感谢您的帮助!

您需要对不在组 by 中的所有子句应用聚合函数。

试试:

SELECT
 TRUNC(X__INSDATE, 'MONTH') as HONAP,
 COUNT(X__INSDATE),
 COUNT(DISTINCT REGISTERED_ID)

或按 REGISTERED_ID

分组