我有以下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] 删除。
我来说两句