Data Science. SQL hub
36K subscribers
909 photos
47 videos
37 files
966 links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
🖥 Complete-Advanced-SQL-Series

Этот репозиторий содержит все, что вам нужно, чтобы прокачать свои навыки работы с #SQL.

Более 100 упражнений и примеров по SQL.

Github

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Преобразование документов #XML в строки и столбцы в Oracle #SQL с помощью

XMLTABLE ( '/path/to/elements' PASSING <xml> COLUMNS ... )

Команда генерирует строку для каждого элемента, на который ссылается путь.

COLUMNS определяет путь к элементам и атрибутам, находящимся в этом пункте.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🔥3
🖥 Совет SQL

Вы можете использовать CASE для выполнения логики IF-THEN вместе с WHERE, например:

WHERE CASE
WHEN pct_correct >= 70 THEN 'Merit'
WHEN pct_correct >= 50 THEN 'Pass'
ELSE 'Fail'
END <> 'Fail'


#sql #oracle

Подробнее

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥86
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Поиск строк в одной таблице, отсутствующих в другой, в Oracle Database с помощью

t1 MINUS t2

Любые дубликаты строк только в T1 исключаются из результатов

В 21c добавлен MINUS ALL, который возвращает избыточные дубликаты.

Также добавлен синоним MINUS - EXCEPT, соответствующий стандарту #SQL

Oператор MINUS используется для возврата всех строк первого запроса SELECT, не возвращаемых вторым SELECT.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Разница между двумя временными метками - представляет собо интервал.

Чтобы получить его в единицах измерения (например, часах или секундах) в Oracle #SQL

Сначала вы извлекаете необходимый интервал времени, затем преобразовываете его в целевую единицу (час/секунду и тд).

например:

EXTRACT ( DAY FROM diff ) * 24 ) +
EXTRACT ( HOUR FROM diff ) +
EXTRACT ( MINUTE FROM diff ) / 60...

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👏9🔥74👍3
🖥 Открытая модель SQL-запросы из естественного языка

На HuggingFace вышла модель Text-to-SQL на 6.91 млрд. параметров.

Модель позволяет превращать обычный текстовый запрос к БД в SQL-выражение:

Вопрос: Выведи день, когда пришло больше всего пользователей

Ответ:
SELECT created_at::DATE AS day, COUNT(*) AS user_count
FROM users
GROUP BY day
ORDER BY user_count DESC
LIMIT 1;

Код:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("chatdb/natural-sql-7b")
model = AutoModelForCausalLM.from_pretrained(
"chatdb/natural-sql-7b",
device_map="auto",
torch_dtype=torch.float16,
)

#sql #llm

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥65😢1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Хотите остановить все часть транзакций, наапример, INSERT, UPDATE и DELETE?

Вы можете заблокировать их с помощью:

LOCK TABLE ... IN EXCLUSIVE MODE

Другие транзакции могут обращаться к таблице, пока вы не отмените блокировку.

#oracle #sql

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥32
🖥 Как проверить, является ли строка продолжением предыдущей.

В статье показано, как с помощью matching в Oracle #SQL найти серию последовательных строк с начальной даты и до конечной:

MATCH_RECOGNIZE (
...
PATTERN (str e+)
DEFINE e AS start_date = PREV(end_date) + 1 --start is 1 day after previous end
)

https://how2ora-en.blogspot.com/2023/01/how-to-check-if-row-is-continuation-of.html

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Вы можете присваивать столбцу значение по УМОЛЧАНИЮ при добавлении или изменении строк с помощью ключевого слова DEFAULT



INSERT INTO ... VALUES ( DEFAULT, ... )

UPDATE ... SET ... = DEFAULT


#SQL #ORACLE

@sqlhub
👍255🔥2
🖥 dbt-core

Громоздкие #SQL запросы трудно читать, понимать и поддерживать.

С помощью dbt вы можете использовать функцию ref, чтобы разбить длинный SQL-запросы на более мелкие компоненты, делая их более читаемыми и удобными для обслуживания.


-- models/total_order_amount.sql
SELECT
order_id,
customer_id,
SUM(order_amount) AS total_amount
FROM
raw_orders
GROUP BY order_id, customer_id


models/average_order_amount.sql:


-- models/average_order_amount.sql
SELECT
customer_id,
AVG(total_amount) AS avg_amount
FROM {{ ref('total_order_amount') }}
GROUP BY customer_id



Github

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍76👎4