29.3Kпросмотров
↗️ 104 репостов
❤️ 154 реакций
64.3%от подписчиков
8 октября 2024 г.
📷 ФотоScore: 30.0K
Google починил SQL
Как думаете, что делает запрос ниже?
FROM customer
|> LEFT OUTER JOIN orders ON c_custkey = o_custkey
AND o_comment NOT LIKE '%unusual%packages%'
|> AGGREGATE COUNT(o_orderkey) c_count
GROUP BY c_custkey
|> AGGREGATE COUNT() AS custdist
GROUP BY c_count
|> ORDER BY custdist DESC, c_count DESC; А делает он то же, что вот этот:
SELECT c_count, COUNT() AS custdist
FROM
( SELECT c_custkey, COUNT(o_orderkey) c_count
FROM customer
LEFT OUTER JOIN orders ON c_custkey = o_custkey
AND o_comment NOT LIKE '%unusual%packages%'
GROUP BY c_custkey
) AS c_orders
GROUP BY c_count
ORDER BY custdist DESC, c_count DESC; Главное отличие в том, что первая версия кода — это новый более лучший улучшенный SQL от Google. 👀 А что не так со старым?
У SQL много плюсов, но давайте честно — это не самый простой язык. Иногда даже опытным экспертам бывает сложно разобраться, как написать или прочитать особенно хитрый запрос. Но и отказываться от него не хочется: во-первых, мы все-таки его любим, а во-вторых, достойной альтернативы ему просто нет. Поэтому ребята из Google предложили решение — конвейерный синтаксис, который вы и видите выше. Что такое GoogleSQL?
GoogleSQL — это диалект SQL, разработанный в Google. К нему прикрутили поддержку «конвейерных» запросов (но обычные и смешанные тоже допускаются). Они отмечаются значком |> и в основном выполняют те же функции, что их «тезки» в стандартном SQL. Хотя есть и несколько экспериментальных, у которых нет аналогов. 🔜 Подробнее можно почитать в публикации от команды Google. Самое интересное начинается с 4 страницы — там про операторы, синтаксис и логику работы. Если совсем кратко (чтобы влезло в пост в Tg), то главный плюс подхода, предложенного Google, — запросы намного проще писать, читать, редактировать, дебажить, добавлять новые операторы и так далее. Вот такой апдейт для старого доброго SQL. Что скажете?
❤️ — так действительно удобнее
🌚 — это уже не SQL