具有子句mysql的嵌套计数?
Posted
技术标签:
【中文标题】具有子句mysql的嵌套计数?【英文标题】:Nested Count with having Clause mysql? 【发布时间】:2015-03-25 18:42:12 【问题描述】:我想计算从不同类别中选择的图像,我的下面的查询返回错误
#1064 - 您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 2 行的 '( select count(i1.id) as cnt FROM image_gallery i1 LEFT OUTER JOIN image_g' 附近使用正确的语法
我哪里错了?
SELECT count(*)
(select count(*)
FROM image_gallery i1
LEFT OUTER JOIN image_gallery i2
ON (i1.category_id = i2.category_id AND i1.id < i2.id)
GROUP BY i1.id
HAVING COUNT(*) < 10
) as total_pics
【问题讨论】:
子查询之外的count(*)
...您要查询哪个表以获取该计数?
【参考方案1】:
您错过了FROM
关键字
SELECT sum(cnt)
FROM
(
select count(i1.id) as cnt
FROM image_gallery i1
LEFT OUTER JOIN image_gallery i2 ON i1.category_id = i2.category_id
AND i1.id < i2.id
GROUP BY i1.id
HAVING COUNT(*) < 10
) as total_pics
【讨论】:
感谢您的快速回复先生,但我的查询仍然返回错误:- #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 '( select count(i1.id) as cnt FROM image_gallery i1 LEFT OUTER JOIN image_g' 附近使用正确的语法 谢谢,先生,但是如果我有 4 个类别,返回结果与 count(*) 小于 10 不匹配,那么从此查询返回的总和必须为 40,但它返回 184?它是怎么做的? 执行内部查询,看看这是你想要的还是你需要调整它。以上是关于具有子句mysql的嵌套计数?的主要内容,如果未能解决你的问题,请参考以下文章
SQL 错误:“嵌套的 INSERT、UPDATE、DELETE 或 MERGE 语句必须具有 OUTPUT 子句。” - 在 Azure Databricks 中执行时