题解 | #返回产品名称和每一项产品的总订单数#

返回产品名称和每一项产品的总订单数

https://www.nowcoder.com/practice/1c64fd9048364a58a8ffa541720359a4

我原先使用的是`count(*)`,一直达不到soda|0的效果。后来gpt了以下,发现使用count(*)会统计所有行,无论该行的order_num是否为空,这样会导致有些产品没有订单号,但因为有一条结联记录,仍然被统计!!

使用 COUNT(o.order_num) 只统计 order_num 不为空的订单数量。这样可以避免因为 LEFT JOIN 后产生的空订单记录被计入订单数量。

SELECT
	a.prod_name,
	count(b.order_num) AS 'orders' 
FROM
	Products a
	LEFT JOIN OrderItems b ON a.prod_id = b.prod_id 
where a.prod_name is not null
GROUP BY
	a.prod_name 
ORDER BY
	a.prod_name

全部评论

相关推荐

我是小红是我:学校换成中南
点赞 评论 收藏
分享
10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务