首页 > 解决方案 > Oracle sql 连接计数给了我 00904 的错误。00000 - "%s: invalid identifier

问题描述

这是我的查询,它试图获取 CUSTOMERS 表中列出的多少 CUSTOMER_ID 也已经在 TRANSACTIONS 表中。

SELECT
    DISTINCT COUNT(*)
FROM
    (
        SELECT
            CUSTOMERS.CUSTOMER_ID
        FROM
            CUSTOMERS
        INNER JOIN TRANSACTIONS 
        ON CUSTOMERS.CUSTOMER_ID = TRANSACTIONS.CUSTOMER_ID
    )

此查询返回

  1. 00000 - “%s:无效标识符错误。

如何修复我的查询?

标签: sqloracleoracle-sqldeveloper

解决方案


Acount(*)将始终返回一个数字,因此distinct不需要对其执行 a 。听起来你想要更像:

SELECT COUNT( DISTINCT CUSTOMERS.CUSTOMER_ID )
  FROM CUSTOMERS
 INNER JOIN TRANSACTIONS 
         ON CUSTOMERS.CUSTOMER_ID = TRANSACTIONS.CUSTOMER_ID

推荐阅读