蜂巢查询以将密钥映射到多个值



我有一个与下面类似结构的表:

|C1|C2|C3|
|K1|V1|??|
|K1|V2|??|
|K1|V3|??|
|K2|V2|??|

我需要编写一个查询,该查询检查是否键(假设K1(映射到任何行中的特定值(例如v2(。如果在C3中执行该值为1,则将其0。

我感谢任何帮助。

folloiwng查询应给出您想要的结果。该子查询识别至少一次映射到C2中某个值的所有C1值。如果是这样,那么我们将C3值渲染为1,否则我们显示0。

SELECT
    t1.C1,
    t1.C2,
    CASE WHEN t2.C1 IS NOT NULL THEN 1 ELSE 0 END AS C3
FROM yourTable t1
LEFT JOIN
(
    SELECT C1
    FROM yourTable
    GROUP BY C1
    HAVING SUM(CASE WHEN C2 = 'V1' THEN 1 ELSE 0 END) > 0
) t2
    ON t1.C1 = t2.C1

最新更新