我有一个关系CandyC( id ,电子邮件,年龄,姓名,candy_id) 我想计算一次与CandyC.candy_id相关联的CandyC.ids。
尝试:
SELECT email, age, name
FROM CandyC
GROUP BY id
HAVING COUNT(DISTINCT candy_id) = 1;
它给了我一个错误: 不是按表达式分组
答案 0 :(得分:1)
group by
子句需要直接选择所有非聚合列。另外,在having
之后使用group by
通常是一个好主意,因为它是标准的写法(尽管Oracle也支持它)。 / p>
这是否符合您的要求:
select email, age, name
from candyc
group by id, email, age, name
having count(distinct candy_id) = 1
如果没有,您应该在问题中提供样本数据和预期结果以澄清。
答案 1 :(得分:0)
我想你想要更像这样的东西:
SELECT candy_id, COUNT(*)
FROM CandyC
GROUP BY candy_id;
我不知道email
/ age
/ name
列与此问题有什么关系:
我想计算一次与CandyC.candy_id相关联的CandyC.ids。