编写三表内连接查询:统计各年龄段女性特定产品持有量
内连接查询实现各年龄段女性客户特定产品持有量统计
先修正表结构问题
注意到Client_Product表的外键定义有误,原语句中REFERENCES PRODUKT(ID_PRODUKTU)需修正为REFERENCES Product(ID_Product),否则会因表名/字段名不匹配导致执行报错。
完整查询语句
SELECT c.Age AS 年龄段, COUNT(DISTINCT c.ID_Client) AS 女性客户数量 FROM Client c INNER JOIN Client_Product cp ON c.ID_Client = cp.ID_Client INNER JOIN Product p ON cp.ID_Product = p.ID_Product WHERE c.Gender = 'Female' -- 若实际数据中性别为中文,可替换为'女' AND p.Product_name = 'chair' GROUP BY c.Age ORDER BY 女性客户数量 DESC;
语句说明
- 表连接逻辑:通过
INNER JOIN关联三张表,只统计同时存在于客户表、产品关联表和产品表中的有效数据,排除无关联的无效记录。 - 精准筛选:
WHERE子句锁定女性客户及目标产品"chair",确保统计范围符合需求。 - 分组统计:按客户年龄分组,用
COUNT(DISTINCT c.ID_Client)统计每组客户数(若Client_Product中每个客户仅对应一条产品记录,也可直接用COUNT(c.ID_Client))。 - 结果排序:最终按客户数量降序排列,便于快速查看占比最高的年龄段。
内容的提问来源于stack exchange,提问作者Black_Phantom
相关产品推荐
相关产品推荐

