请帮助我对请求进行分类:开发查询以计算每个作者撰写的新闻数量以及引用作者新闻的最受欢迎标签。所有这些信息必须在一个单一的结果集中输出。
我写了请求的第一部分,它显示了每个作者的新闻数量:
SELECT news_author.author_id AS "Author ID", COUNT(*) AS "Amount of news"
FROM news
JOIN news_author ON id = news_author.news_id
JOIN news_tag ON id = news_tag.news_id
GROUP BY news_author.author_id
ORDER BY news_author.author_id;
请告诉我如何请求最受欢迎的标签,参考作者新闻并将这两个示例组合为一个结果集。
您可以使用标准的ANSI SQL功能或Oracle SQL红利。
附表方案。
最受欢迎的标记在统计信息中有一个名称,称为mode。而且,Oracle具有聚合功能stats_mode()
可以对其进行计算。因此,您可以使用:
SELECT na.author_id AS "Author ID",
COUNT(DISTINCT n.id) AS num_news,
STATS_MODE(nt.tag_id)
FROM news n JOIN
news_author na
ON n.id = na.news_id JOIN
news_tag nt
ON n.id = nt.news_id
GROUP BY na.author_id
ORDER BY na.author_id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句