sql - 列出每本书的副本数
问题描述
对于学校项目,我应该对此库模型进行查询。
到目前为止我做得很好,但现在我被困在这个问题上:“列出每本书的副本数量”。
以下是已完成但未按应有的工作:
SELECT liv_titulo, (
SELECT count(exe_cod)
FROM exemplar
GROUP BY liv_cod
ORDER BY COUNT(exe_cod) desc) Quantidade
FROM livro INNER JOIN exemplar USING (liv_cod);
解决方案
我认为您想要使用的技术是相关子查询:
您在子查询中需要一个
WHERE
子句,因此它只考虑liv_code
外部查询中当前行的子查询中不需要
GROUP BY
子句;它应该返回一个标量值(只有一行和一列,其中包含来自 table 的匹配行数examplar
)join
外部查询中不需要 a
代码:
SELECT
liv_titulo,
(
SELECT count(*)
FROM exemplar e
WHERE e.liv_cod = l.liv_cod -- correlation
) Quantidade
FROM livro l;
推荐阅读
- ios - viewWillAppear(_:) viewDidDisappear(_:) View SwiftUI
- java - Spring Session 中的 SaveMode 和 FlushMode 有什么区别?
- .net - Cometd/bayeux 客户端问题
- sql - 使用 SQL Server 2016 导入整个 json 文件目录
- git - Git 分支策略与实践 - 基于主分支项目的不同项目放入不同的分支而不是新的存储库
- scikit-learn - scikit-learn: how to predict new data if after one hot encoding it has fewer features than the training/testing sets
- html - How to remove the dead zone between input radio and its label
- sql - Find maximum after multiplying two columns from two different tables - SQL
- spring - 如何解决返回模式在 Spring Boot 中不起作用
- c# - 为什么迁移添加会创建空迁移文件?