SQL LIMIT
Когда вы разрабатываете модели данных или составляете запрос, вам обычно нужно видеть все результаты? Обычно нет. Поэтому мы используем LIMIT.
Добавление клаузулы LIMIT к запросу ограничит количество возвращаемых строк. Это полезно, когда вы разрабатываете модели данных, чтобы убедиться, что SQL в запросе работает как ожидается, и хотите сэкономить деньги в период разработки.
Как использовать клаузу LIMIT в запросе
Чтобы ограничить количество строк, возвращаемых из запроса, вы добавляете LIMIT в последней строке запроса с указанием количества строк, которые вы хотите получить:
select
some_rows
from my_data_source
limit <integer>
Давайте рассмотрим практический пример использования LIMIT ниже.
Пример LIMIT
select
order_id,
order_date,
rank () over (order by order_date) as order_rnk
from {{ ref('orders') }}
order by 2
limit 5
Этот простой запрос, использующий таблицу orders
из Jaffle Shop, вернет ровно эти 5 строк:
order_id | order_date | order_rnk |
---|---|---|
1 | 2018-01-01 | 1 |
2 | 2018-01-02 | 2 |
3 | 2018-01-04 | 3 |
4 | 2018-01-05 | 4 |
5 | 2018-01-05 | 4 |
После того как вы убедитесь, что это результат, который вы хотите получить из этого запроса, вы можете опустить LIMIT в вашей финальной модели данных.
Вы можете ограничить данные, используемые для разработки, вручную добавив оператор LIMIT, клаузу WHERE в ваш запрос или используя макрос dbt для автоматического ограничения данных на основе вашей среды разработки, чтобы помочь сократить использование вашего хранилища в период разработки.
Синтаксис LIMIT в Snowflake, Databricks, BigQuery и Redshift
Все современные хранилища данных поддерживают возможность ограничения запроса, и синтаксис также одинаков для всех них. Используйте таблицу ниже, чтобы узнать больше о документации по ограничению результатов запроса в вашем хранилище данных.
Хранилище данных | Поддержка LIMIT? |
---|---|
Snowflake | ✅ |
Databricks | ✅ |
Amazon Redshift | ✅ |
Google BigQuery | ✅ |
Примеры использования LIMIT
Мы чаще всего видим ограниченные запросы в работе с данными для:
- Экономии денег в разработке, особенно для больших наборов данных; просто убедитесь, что модель работает на подмножестве данных, а не на всех данных 💸
- В сочетании с оператором ORDER BY, чтобы получить топ 5, 10, 50, 100 и т.д. записей из набора данных
Это не исчерпывающий список, где ваша команда может использовать LIMIT в течение вашей разработки, но он содержит некоторые общие сценарии, с которыми аналитики сталкиваются ежедневно.