窗口分区用VARCHAR
问题描述:
可以说,我有以下两列(品牌&颜色)的值是:窗口分区用VARCHAR
brand color
ford blue
ford pink
ford yellow
chevy green
chevy white
chevy yellow
jeep blue
jeep green
我只关心卖出粉红色或蓝色的汽车品牌。 什么类型的窗口函数可以让我只撤回三条'福特'记录,因为福特有一辆粉色/蓝色车。和两个吉普车记录。 (我不想看到任何chevy记录)。 谢谢
答
您应该对颜色条件的品牌列做一个独特的查询。您将获得可查询的品牌列表。然后将此结果与基于品牌的正常表结合。然后获得记录。
换句话说您需要使用不同品牌的子查询,并且是内部连接到你的正常的表
像
select t1.*
from t1
inner join (
select distinct brand
from t1
where color in ('pink', 'blue')
) as t2 on t2.brand = t1.brand
答
SELECT *
FROM t1
WHERE brand in (
SELECT brand
FROM t1
WHERE color in ('pink', 'blue')
)
阅读英文此查询条件:选择所有品牌等于所有品牌粉红色或蓝色的记录。