我尝试在sql中进行此咨询,但我不知道如何。
我有一张产品商店表。
我想要一张类似的表:
tshirt | jeans | number sells
---------------------------------------
tshirt1 | jean1 | 5
tshirt1 | jean2 | 4
tshirt1 | jean3 | 0
.............................
tshirt1 | jeanN | 3
我在其他购物的表中拥有此信息。该表有一个用户代码,并有一个要购买一种产品的行。
codeUser product buy
-------------------------
1 tshirt1
1 jeans1
2 jeans2
...............
我想知道很多人都购买一件T恤1,并且也购买一种类别2的产品。
我有一个按类别(例如T恤)进行产品过滤的视图;其他视图等于但过滤其他类别,例如牛仔裤。
我需要这个视图吗?或者我需要其他视图吗?
我不知道如何查询
谢谢
首先,您需要使用交叉联接生成所有行。然后输入客户信息。
我认为它看起来像这样:
select t.product as tshirt, j.product as jeans,
count(distinct bj.codeUser)
from (select distinct product from buys where product like 'tshirt%') t cross join
(select distinct product from buys where product like 'jeans%') j left join
buys bt
on bt.product = t.product left join
buys bj
on bj.product = j.product and
bj.codeuser = bt.codeuser
group by t.product as tshirt, j.product;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句