SQL 计数表格连接表

SQL COUNT FORM JOIN TABLES

我有以下 sql 命令:

SELECT "USERNAME"."TOPICS".VALUE,
       "USERNAME"."TOPICS".QID,
       "USERNAME"."QUESTION".QRATING
FROM "USERNAME"."TOPICS" JOIN "USERNAME"."QUESTION"
ON "USERNAME"."TOPICS".QID = "USERNAME"."QUESTION".QID 
AND "USERNAME"."TOPICS".VALUE = 'kia'
ORDER BY QRATING DESC

效果很好,但我想计算有多少个元素returns。所以我尝试使用:

SELECT COUNT("USERNAME"."TOPICS".QID)
FROM "USERNAME"."TOPICS" JOIN "USERNAME"."QUESTION"
ON "USERNAME"."TOPICS".QID = "USERNAME"."QUESTION".QID 
AND "USERNAME"."TOPICS".VALUE = 'kia'
ORDER BY QRATING DESC

但是我得到了错误:

Column reference 'USERNAME.TOPICS.VALUE' is invalid. When the SELECT list contains at least one aggregate then all entries must be valid aggregate expressions.

问题是什么?

嗯。 ORDER BY 应该得到错误,而不是 SELECT。但是,使用 table 别名会更容易理解您的查询:

SELECT COUNT(t.QID)
FROM "USERNAME"."TOPICS" t JOIN
     "USERNAME"."QUESTION" q
     ON t.QID = q.QID AND t.VALUE = 'kia';

如果第一个查询有效,我看不出有什么不可行的原因(没有 ORDER BY 的原始查询也应该有效)。