gpt4 book ai didi

mysql - SQL : How to get an occurrence count of unique values from a query complicated by joins?

转载 作者:行者123 更新时间:2023-11-29 13:41:27 31 4
gpt4 key购买 nike

我有三个表:

  • 内容
  • 内容_类别
  • 内容类

内容类有四种类型,Content_Class 与内容行具有多:1 关系,以将每个内容与 1 个或多个类链接。

同样的规则适用于类别,它与内容行也具有多:1 关系。

我的目标是,给定一组内容行可能按类别过滤,每个类的 Content_Class 行的聚合计数是多少?

我当前的查询:

SELECT cc.class_Id, COUNT(*) AS `records`
FROM Content_Class cc
LEFT JOIN Content c ON c.id = cc.content_id
LEFT JOIN Content_Category ccat ON c.id = ccat.content_id
WHERE cc.class_id IS NOT NULL
GROUP BY cc.class_id';

这不能提供准确的计数,因为对于包含多个类别关系的内容,内容行在查询响应中的每个类别链接中显示一次,从而夸大了类出现的计数。

例如,如果内容行映射到两个类别和两个类,它将显示四次,使结果中唯一内容与类关系的实际计数加倍...

按唯一内容行获取所有内容类出现次数的最佳查询是什么?

最佳答案

你应该尝试这个:

    SELECT count(cc.class_id) FROM (SELECT distinct cc.class_Id, COUNT(*) AS `records`
FROM Content_Class cc
LEFT JOIN Content c ON c.id = cc.content_id
LEFT JOIN Content_Category ccat ON c.id = ccat.content_id
WHERE cc.class_id IS NOT NULL
GROUP BY cc.class_id');

关于mysql - SQL : How to get an occurrence count of unique values from a query complicated by joins?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025834/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com