SQL 选择和计数在同一个查询中

戴夫

在此先感谢您提供的任何帮助,我是 MS SQL 的新手,我想做一些我认为可以实现但不知道如何做的事情。

我有一个名为“suppliers”的简单表,我可以在其中执行(SELECT id,name FROM providers ORDER BY id ASC)

ID 姓名
1 ACME
2 第一站商业用品
3 一站式供应仓库
4 农场第一供应

我有另一个名为“产品”的表

ID 姓名 供应商 ID
1 项目 1 2
2 第 2 项 1
3 第 3 项 1
4 第 4 项 3
5 第 5 项 2

如果在同一行有意义,我想列出所有供应商并获取每个供应商的产品总量?我只是不确定如何通过查询传递suppliers.id 来获取计数。

我希望能做到这一点:

ID 姓名 total_products
1 ACME 2
2 第一站商业用品 2
3 一站式供应仓库 1
4 农场第一供应 0

我真的很感激这方面的任何帮助。

基思

这里要掌握三个概念。Left Join, group by, 和Count().

select s.id, s.name, Count(*) as total_products
from suppliers s
left join products p on s.id=p.supplier_id --the left join gets your no matches
group by s.id, s.name

左连接是一种连接,其中保留第一个表中的所有值,即使第二个表中没有匹配项。

Group by是一种聚合工具,用于输入要聚合的列。

Count()只是分组列的事务计数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

sql (oracle) 在同一个 select/where 查询中计数和求和

SQL 查询:在同一个表上进行多项选择和求和

如何对同一个查询 SQL 进行 2 个不同的计数?

SQL Server:查询以从同一个表和另一个表中获取数据

有什么方法可以在同一个 SQL 查询中进行多个计数?

SQL Server 为同一个日期选择查询返回不同的结果,在不同的场景中

加入同一个表的两个 SQL 选择查询并过滤

同一个表但不同列中自己id的SQL计数总和

SQL递归查询同一个表

在同一个SQL查询中使用别名

交叉引用同一个表的 SQL 查询

在同一个插入 SQL 中插入 2 个选择

我应该为同一个 SQL 表列选择自动增量和主键吗

在同一个表中查找数字差异的复杂 SQL 查询

具有 3 个表和同一个表上的子查询的 SQL 查询

如何在同一个匿名 pl/sql 块中删除函数和过程?

将 2 个 sql 查询中的 json 数据返回到同一个数组中

SQL QUERY:如何在同一个查询中的多个位置创建和使用查询结果

需要 SQL 查询帮助:如何在同一个表中排除或优先考虑 SQL 中的行

SQL Server:在一个查询中来自同一表的多个选择语句

SQL:在一个查询中两次选择同一列?

SQL Server 查询从同一个表中提取两个不同的行

SQL查询使用同一个表比较两个WHERE子句

来自同一个 SQL 查询的两个 SUM

SQL Server - 如何从不同的行但在同一个表中选择值

SQL查询,使用同一个表两次

两次加入同一个父表的 SQL 查询

查询同一个SQL表不同条件的多个实例

sql在一个查询中获取总数和过滤计数