我正在尝试自学 SQL,以便在工作中更好地使用数据库。为此,我使用 Oracle Application Express。如果我第一次使用 COUNT 函数,并且在将它集成到我的查询中时遇到一些困难,这就是我的情况。我进行了大量研究并阅读了大量文献,但我似乎无法正确理解。
我的目标是显示每个 channel 的 channel_name
和 channel_number
列(来自 channel 表)以及拥有该 channel 的客户数量最喜欢的 channel (调查表中的 survey_result
列)。代码见下:
SELECT channel.channel_number,
channel.channel_name,
survey.survey_result,
count(SELECT survey.survey_result FROM survey)
From Channel, survey
WHERE survey.channel_number = channel.channel_number
目前我收到错误信息:
ORA-00936: missing expression.
最佳答案
试试这个:
下面的查询只为您提供至少有 1 个客户的 channel 。
SELECT C.channel_number, C.channel_name, COUNT(S.survey_result) NoOfCustomers
FROM Channel C
INNER JOIN survey S ON S.channel_number = C.channel_number
GROUP BY C.channel_number, C.channel_name;
下面的查询为您提供了所有 channel ,无论是否有客户。
SELECT C.channel_number, C.channel_name, COUNT(S.survey_result) NoOfCustomers
FROM Channel C
LEFT JOIN survey S ON S.channel_number = C.channel_number
GROUP BY C.channel_number, C.channel_name;
关于sql - 使用 Oracle 在 SQL 查询中集成 COUNT 函数时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20674205/