Число Шахрукха актера — это длина кратчайшего пути между актером и Шахрукх Кханом в «совместном» графе

#sql #imdb

#sql #imdb

Вопрос:

1

Вопрос: Число Шахрукха актера — это длина кратчайшего пути между актером и Шахрукх Кханом в графе «совместное действие». То есть, Шахрукх Кхан имеет номер Шахрукха 0; все актеры, которые снимались в том же фильме, что и Шахрукх, имеют номер Шахрукха 1; все актеры, которые снимались в том же фильме, что и некоторые

Ответ: Для данного вопроса я написал приведенный ниже запрос, однако результирующая форма вывода равна (28081, 1), а ожидаемая равна (25698, 1).

Пожалуйста, помогите мне понять, где я ошибаюсь.

 WITH 
SHAHRUKH_0 AS
(
    SELECT
        TRIM(P.PID) PID
    FROM
        Person P
    WHERE
        Trim(P.Name) like '%Shah%rukh%Khan%'
),
SHAHRUKH_1_MOVIES AS
(
    SELECT
        DISTINCT
        TRIM(MC.MID) MID,
        S0.PID
    FROM
        M_Cast MC,
        SHAHRUKH_0 S0
    WHERE
        TRIM(MC.PID) = S0.PID
),
SHAHRUKH_1_ACTORS AS
(
    SELECT
        DISTINCT
        TRIM(MC.PID) PID
    FROM
        M_Cast MC,
        SHAHRUKH_1_MOVIES S1M
    WHERE
        TRIM(MC.MID) = S1M.MID AND
        TRIM(MC.PID) <> S1M.PID
),
SHAHRUKH_2_MOVIES AS
(
    SELECT
        DISTINCT
        TRIM(MC.MID) MID,
        S1A.PID
    FROM
        M_Cast MC,
        SHAHRUKH_1_ACTORS S1A
    WHERE
        TRIM(MC.PID) = S1A.PID
)
SELECT
    DISTINCT
    TRIM(MC.PID) PID,
    TRIM(P.Name) ACTOR_NAME
FROM
    Person P,
    M_Cast MC,
    SHAHRUKH_2_MOVIES S2M
WHERE
        TRIM(MC.PID) = TRIM(P.PID) AND
        TRIM(MC.MID) = S2M.MID AND
        TRIM(MC.PID) <> S2M.PID
 

Ответ №1:

ПОЖАЛУЙСТА, ОТПРАВЬТЕ ПРАВИЛЬНЫЙ ОТВЕТ НА SQL-ЗАПРОС НАБОРА ДАННЫХ IMDB