3-2第八题:
题目: 查询购买各商品种类的各专业的学生人数
-
代码:
-- 8. 查询购买各商品种类的各专业的学生人数。 -- 一开始想的是查只要购买了商品的人数,后面才发现是查商品种类 不同专业名 购买该种类商品的人数 -- 思路分析:查询各商品种类的种类id,根据种类id找到对应的货物id,再用货物id去找学生id -- 结果应该是:不同商品种类 不同专业名 购买该种类商品的人数 -- 方法一:使用子查询语句 -- SELECT Major,COUNT(Major) FROM student WHERE SNO IN ( -- SELECT DISTINCT SNO FROM salebill WHERE GoodsNO IN ( -- SELECT GoodsNO FROM goods WHERE CategoryNO IN ( -- SELECT CategoryNO FROM category)) -- ) -- GROUP BY Major; SELECT c.CategoryName,st.Major,COUNT(st.SNO) FROM student st LEFT JOIN salebill s ON st.SNO = s.SNO LEFT JOIN goods g ON s.GoodsNO = g.GoodsNO RIGHT JOIN category c ON g.CategoryNO = c.CategoryNO GROUP BY c.CategoryNO,c.CategoryName,st.Major;
-
效果图: