首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滥用合计: COUNT()

滥用合计: COUNT()
EN

Stack Overflow用户
提问于 2019-01-11 16:14:23
回答 1查看 2.3K关注 0票数 0

我有两张桌子,罗兹莫瓦和阿伯南特。我想这么做:

代码语言:javascript
复制
dbGetQuery(con, "SELECT A.imie, A.nazwisko, A.numer, 
COUNT(R.id_abonent_to) AS ile 
FROM abonent A LEFT JOIN 
rozmowa R ON A.id = R.id_abonent_to 
WHERE ile > 4
GROUP BY A.id, A.imie, A.nazwisko, A.numer")

但我犯了个错误

滥用合计: COUNT()

谁能给我解释一下原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-11 16:16:09

也许你把WHEREHAVING搞混了

代码语言:javascript
复制
SELECT A.imie, A.nazwisko, A.numer, COUNT(*) AS ile
FROM abonent A JOIN
     rozmowa R
     ON A.id = R.id_abonent_to
GROUP BY A.id, A.imie, A.nazwisko, A.numer
HAVING COUNT(*) > 4;

并非所有数据库都支持HAVING中的列别名。如果你有,你可以使用HAVING ile > 4

请注意,LEFT JOIN是不必要的,因为您需要至少5行匹配。(我想您的查询可能有其他解释,但我猜多行计数来自R。)

然后,COUNT(*)进行简化。用于COUNT()的列是ON的一部分。您的COUNT()版本适合于LEFT JOIN,但对于您所做的工作来说是不必要的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54150242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档