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

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

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

全部评论

相关推荐

11-13 20:32
门头沟学院 Java
面向未来编程code:我没看到他咋急,他不就问你个问题。。。
点赞 评论 收藏
分享
10-11 17:30
湖南大学 C++
我已成为0offer的糕手:羡慕
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务