SQL Подзапрос с использованием условия where - PullRequest
2 голосов
/ 09 апреля 2020
SELECT
    RE.RECODE,
    (SELECT
        X.HIDESC
    FROM
            (
            SELECT HI.HIDESC, ROW_NUMBER() OVER(PARTITION BY HI.HIRECO ORDER BY HI.HIRECO) AS RN
            FROM M6HI HI WHERE HI.HIRECO = RE.RECODE
            ) X
    WHERE X.RN = 1) AS NILAI
FROM M5RE RE

Извините за мой плохой английский sh.

Я хочу получить HIDES C от M6HI на основе HI.HIRECO = RE.RECODE, а RE.RECODE - l oop от M5RE.

Кто-нибудь знает, как это исправить?

1 Ответ

1 голос
/ 09 апреля 2020

Общее выражение таблицы может помочь вам немного разобраться в этом.

WITH cte_hidesc AS (
 SELECT HI.HIDESC, ROW_NUMBER() OVER(PARTITION BY HI.HIRECO ORDER BY HI.HIRECO) AS RN
 FROM M6HI HI INNER JOIN M5RE RE ON HI.HIRECO = RE.RECODE
)

SELECT HIDESC
FROM cte_hidesc
WHERE ROWNUMBER = 1

HiveQL поддерживает CTE. Документация здесь:
https://cwiki.apache.org/confluence/display/Hive/Common+Table+Expression

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...