Имеет ли значение отступ в SQL? - PullRequest
0 голосов
/ 20 июня 2020

Я провожу микрокурс по Kaggle, на котором два, казалось бы, одинаковых блока (за исключением отступа) дают разные результаты.

1.

answers_query = """
                SELECT a.id, a.body, a.owner_user_id
                FROM `bigquery-public-data.stackoverflow.posts_questions` AS q 
                INNER JOIN `bigquery-public-data.stackoverflow.posts_answers` AS a
                ON q.id = a.parent_id
                WHERE q.tags LIKE '%bigquery%'
                """
# Set up the query
safe_config = bigquery.QueryJobConfig(maximum_bytes_billed=10**10)
answers_query_job = client.query(answers_query, job_config = safe_config) # Your code goes here

# API request - run the query, and return a pandas DataFrame
answers_results = answers_query_job.to_dataframe() # Your code goes here

# Preview results
print(answers_results.head())

# Check your answer
q_4.check()

Запуск этот код, я получаю следующую ошибку:

400 GET https://dp.kaggle.net/bigquery/v2/projects/kaggle-161607/queries/fdc91d96-2162-4e88-895e-7b0e2ffc377e?maxResults=0&location=US: Превышен предел запроса для выставленных байтов: 10000000000. Требуется 25131220992 или выше.

Однако когда я просто заменяю свой answers_query следующим образом, ошибки не возникает:

answers_query = """
                SELECT a.id, a.body, a.owner_user_id
                FROM `bigquery-public-data.stackoverflow.posts_questions` AS q 
                INNER JOIN `bigquery-public-data.stackoverflow.posts_answers` AS a
                    ON q.id = a.parent_id
                WHERE q.tags LIKE '%bigquery%'
                """

Кажется, что разные отступы дают разные результаты. Я новичок в SQL, поэтому не знаю, имеет ли значение отступ. Судя по поиску в Google и другим ответам на переполнение стека, кажется, что отступы - это вопрос удобочитаемости, и он не должен ничего менять.

Ответы [ 3 ]

0 голосов
/ 20 июня 2020

У меня тоже была похожая проблема на Kaggle.com. Онлайн-редактор Kaggle.com интерпретирует синтаксис по-своему. Иногда интерпретатор kaggle интерпретирует неверно. в основном kaggle ide, в первую очередь нацеленный на поддержку python. вот почему некоторые временные отступы имеют значение в онлайн-среде kaggle

0 голосов
/ 20 июня 2020

Отступ не имеет значения, поскольку система его читает независимо от пробела.

0 голосов
/ 20 июня 2020

Отступ точно не имеет значения. Как предполагали другие, первый запрос, вероятно, будет медленнее, поскольку данные читаются с диска и кэшируются. Последующие запросы к тем же данным должны выполняться быстрее, и тогда они будут в пределах, вызвавших первоначальную ошибку.

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