2014-02-12 9 views
2

Следующий запрос возвращает результат:BigQuery 3 таблицы присоединиться + группа по вопросу

SELECT id_a, 
     id_b, 
     id_c 
    FROM (
     SELECT id_a, 
       id_b, 
       id_c, 
       Dep_Travail_b 
      FROM (
       SELECT A.ID id_a, 
         B.ID id_b, 
         B.Dep_Travail Dep_Travail_b 
        FROM [regal-cider-369:insee_recensement_1968_2010.Dep_Naissance] A 
         INNER JOIN [regal-cider-369:insee_recnsement_1968_2010.Dep_Travail] B 
            ON A.ID = B.ID 
       ) as JOIN1 
          INNER JOIN (
             SELECT ID id_c 
             FROM [regal-cider-369:insee_recnsement_1968_2010.Dep_Residence] C 
            ) as C 
             ON id_a = id_c 
     ) 
ORDER BY id_a, 
     id_b, 
     id_c 

но если ORDER BY п заменяется GROUP BY, возвращается следующее сообщение об ошибке:

поле 'id_c' не найден; вы имели в виду «id_a»?

Упрощенная версия тот же запрос приводит к тем же результатам (работа с ORDER BY в конце запроса не выполняется с помощью GROUP BY).

SELECT id_a, 
     id_b, 
     id_c 
    FROM (
      SELECT A.ID id_a , 
       B.ID id_b 
      FROM [regal-cider-369:insee_recensement_1968_2010.Dep_Naissance] A 
       INNER JOIN [regal-cider-369:insee_recensement_1968_2010.Dep_Travail] B 
          ON A.ID = B.ID 
     ) as JOIN1 
        INNER JOIN (
           SELECT ID id_c 
           FROM [regal-cider-369:insee_recensement_1968_2010.Dep_Residence] C 
           ) as C 
           ON id_a = id_c 
ORDER BY id_a, 
     id_b, 
     id_c 

Есть ли проблема с GROUP BY и присоединяется, или я что-то пропустил?

+0

ли работа, когда вы добавляете таблицу псевдоним для столбцов? Как 'GROUP BY A.ID, B.ID, C.ID' – DanFromGermany

+0

Указывает на точную строку, с которой происходит ошибка? – Alexander

+0

Не работает, если я добавляю префикс в столбцы, и строка не указана. но я нашел способ заставить его работать, я отвечу на вопрос. – ggo

ответ

1

Кажется, что это работает, когда я добавить псевдонимы (FieldA, FieldB, FieldC) для выбранных полей, Простой версии, которая работает с GROUP BY является:

SELECT id_a AS fieldA, 
      id_b as fieldB, 
      id_c as fieldC 
    FROM (
      SELECT A.ID id_a , 
       B.ID id_b 
      FROM [regal-cider-369:insee_recensement_1968_2010.Dep_Naissance] A 
       INNER JOIN [regal-cider-369:insee_recensement_1968_2010.Dep_Travail] B 
          ON A.ID = B.ID 
     ) as JOIN1 
        INNER JOIN (
           SELECT ID id_c 
           FROM [regal-cider-369:insee_recensement_1968_2010.Dep_Residence] C 
           ) as C 
           ON id_a = id_c 
GROUP BY fieldA, 
     fieldB, 
     fieldC 
Смежные вопросы