sql - 新学习者的简单查询
问题描述
只需要新的 sql 学习者的帮助。
我有两张桌子。产品,供应商。产品具有 Vendor_ID 作为外键。我需要显示每个供应商的 vendor_name、vendor_phone 和产品数量。如果您能帮助我简单地解释查询,我会很高兴。
解决方案
你可以像下面这样COUNT(*)
使用。GROUP BY
SELECT V.VendorId, V.Vendor_Name AS VendorName, V.Vendor_Phone, Count(*) [Count]
FROM Vendor V INNER JOIN Product P ON P.Vendor_ID = V.Vendor_ID
GROUP BY V.VendorId, V.Vendor_Name,V.Vendor_Phone
或使用如下子查询。
SELECT V.Vendor_Name AS VendorName, V.Vendor_Phone,
(
SELECT COUNT(*) FROM Product P WHERE P.Vendor_ID = V.Vendor_ID
) AS [Count]
FROM Vendor V
您也可以使用 来执行此操作ROW_NUMBER()
,如下所示。
SELECT * FROM
(
SELECT V.VendorId, V.Vendor_Name AS VendorName, V.Vendor_Phone,
ROW_NUMBER() OVER(PARTITION BY V.Vendor_ID ORDER BY V.Vendor_ID) RN
Count(*) OVER(PARTITION BY V.Vendor_ID ORDER BY V.Vendor_ID) [Count]
FROM Vendor V INNER JOIN Product P ON P.Vendor_ID = V.Vendor_ID
) T
WHERE T.RN=1
推荐阅读
- java - 使用tomcat8从aws EC2实例转储java堆内存
- mysql - MySQL SUM 同时保持汇总数据分开
- odoo - 单击 Odoo 11 的创建按钮时删除 crm 线索的对话框屏幕
- dataframe - 关于在带有 pyspark 的数据帧上使用 udf 函数的列文字错误
- python - 批处理文件重命名:正则表达式的零填充时间?
- c# - 当实体的表还不存在时,实体框架的行为是什么?
- jenkins - allure-results 在 Jenkins 中不存在
- python - 使用用户输入创建继承类
- php - Laravel-为什么我的刀片文件在 if、else 和 endif 都存在时会出现意外的文件结尾?
- r - 给定不同数据框的列表,映射和绑定不同的数据框