题解 | #返回产品名称和每一项产品的总订单数#
返回产品名称和每一项产品的总订单数
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