SQL计数表联接表

用户11001

我有以下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

它确实运行良好,但我想计算返回的元素数量。所以我尝试使用:

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

但是我得到了错误:

列引用“ USERNAME.TOPICS.VALUE”无效。当SELECT列表至少包含一个聚合时,则所有条目都必须是有效的聚合表达式。

问题是什么?

戈登·利诺夫

ORDER BY应该得到的错误,而不是SELECT但是,使用表别名可以使查询更容易理解:

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

如果第一个查询有效,我认为没有理由不这样做(并且没有的原始文档ORDER BY也应有效)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章