配置单元查询以将键映射到多个值
hive query to map keys to multiple values
我有一个 table 的结构类似于下面的结构:
|C1|C2|C3|
|K1|V1|??|
|K1|V2|??|
|K1|V3|??|
|K2|V2|??|
我需要编写一个查询来检查键(比方说 K1)是否映射到任何行中的特定值(比方说 V2)。如果是,则 C3 列中的值被视为 1,否则为 0。
如有任何帮助,我将不胜感激。
以下查询应该会给出您想要的结果。子查询标识所有 C1
值,这些值至少映射到 C2
中的某个值一次。如果是这样,那么我们将 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
我有一个 table 的结构类似于下面的结构:
|C1|C2|C3|
|K1|V1|??|
|K1|V2|??|
|K1|V3|??|
|K2|V2|??|
我需要编写一个查询来检查键(比方说 K1)是否映射到任何行中的特定值(比方说 V2)。如果是,则 C3 列中的值被视为 1,否则为 0。
如有任何帮助,我将不胜感激。
以下查询应该会给出您想要的结果。子查询标识所有 C1
值,这些值至少映射到 C2
中的某个值一次。如果是这样,那么我们将 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