AT extra 👨‍💻 devcode
4 subscribers
601 photos
145 videos
1 file
574 links
Главное не ставить деплой в пятницу 🤣

#трюкдня #мемдня

Мемы тут: @atextra_entertrends
Download Telegram
Forwarded from Data Science. SQL hub
🖥 Как транспонировать в SQL?

Для транспонирования таблицы в SQL необходимо использовать оператор PIVOT или функцию MAX или CASE в сочетании с оператором GROUP BY.

Оператор PIVOT позволяет преобразовать строки в столбцы, а столбцы - в строки, используя значения одного столбца в качестве заголовков новых столбцов.

Синтаксис оператора PIVOT выглядит следующим образом:

SELECT *
FROM table_name
PIVOT
(
aggregate_function(column_to_aggregate)
FOR column_to_pivot IN (list_of_pivot_values)
) AS alias_name;


Здесь table_name - это имя таблицы, которую нужно транспонировать aggregate_function - это агрегатная функция, которую нужно применить к столбцу, column_to_aggregate - это имя столбца, который нужно агрегировать, column_to_pivot - это имя столбца, который нужно использовать для создания новых столбцов, list_of_pivot_values - это список значений столбца column_to_pivot, для которых нужно создать новые столбцы, alias_name - это имя для результирующей таблицы

Пример использования оператора PIVOT:

SELECT *
FROM (
SELECT product_id, year, sales
FROM sales_table
) AS source_table
PIVOT
(
SUM(sales)
FOR year IN (2023, 2022, 2021)
) AS pivot_table;


В этом примере мы выбираем данные из таблицы sales_table и используем оператор PIVOT, чтобы преобразовать строки в столбцы, используя годы продаж как заголовки новых столбцов.

Если оператор PIVOT недоступен в вашей версии SQL, вы можете использовать функцию MAX или CASE в сочетании с оператором GROUP BY.

Синтаксис функции MAX для транспонирования таблицы выглядит следующим образом:

SELECT column_to_group_by,
MAX(CASE column_to_pivot WHEN pivot_value_1 THEN value_to_show ELSE NULL END) AS pivot_value_1,
MAX(CASE column_to_pivot WHEN pivot_value_2 THEN value_to_show ELSE NULL END) AS pivot_value_2,
...
FROM table_name
GROUP BY column_to_group_by;


Здесь column_to_group_by - это имя столбца, по которому нужно группировать данные, column_to_pivot - это имя столбца, который нужно использовать для создания новых столбцов, pivot_value_1, pivot_value_2 - это значения столбца column_to_pivot, для которых нужно создать новые столбцы, value_to_show - это значение, которое нужно показать в новом столбце

Задача:

Дана таблица T:

id value
2 a
3 a
4 b
5 c


Необходимо сформировать запрос, который бы вернул следующий набор:

a b c
2 1 1


Пишите свое решение в комментариях👇

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Data Science. SQL hub
🖥 Как правильно вводить дату в SQL

В SQL даты обычно вводятся в формате "ГГГГ-ММ-ДД", где "ГГГГ" - год, "ММ" - месяц (от 01 до 12) и "ДД" - день (от 01 до 31).

Например, чтобы вставить запись в таблицу "orders" с датой заказа 22 марта 2023 года, можно использовать следующий запрос:

INSERT INTO orders (order_date, customer_name)
VALUES ('2023-03-22', 'Иванов Иван');


Если же дата вводится с помощью функции, то можно использовать стандартную функцию преобразования даты, например, функцию TO_DATE() в Oracle:

INSERT INTO orders (order_date, customer_name)
VALUES (TO_DATE('22-03-2023', 'DD-MM-YYYY'), 'Иванов Иван');

В этом примере мы используем функцию TO_DATE() для преобразования строки "22-03-2023" в дату формата "ГГГГ-ММ-ДД". Второй аргумент функции ("DD-MM-YYYY") указывает формат входной строки.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
Нашел как-то разработчик баг...

@devopsina
Forwarded from Хабр Новости
Canonical опубликовала релиз дистрибутива Ubuntu 23.04 Lunar Lobster. Операционная система перешла на обновлённое окружение рабочего стола, а ядро обновили до выпуска 6.2. Также Steam в виде snap-пакета вышел в стабильную ветку.

#ОС #разработка
Forwarded from loldev();
This media is not supported in your browser
VIEW IN TELEGRAM
Надо было сказать, что на компьютере
Forwarded from Data Science. SQL hub
🖥 Создание базы данных для маркетплейса с помощью SQL

В этой статье мы разработаем БД для практики. В этом проекте перед вами стоит задача создать реляционную базу данных для веб-сайта, предлагающего продажу подержанных автомобилей.

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

▪ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Droider
This media is not supported in your browser
VIEW IN TELEGRAM
🤖 Инженеры подружили ChatGPT и робота Spot от Boston Dynamics!

Умельцы интегрировали технологию “из текста в речь” от Google, чтобы пользователи могли задавать “пёсику” вопросы голосом, а Spot мог отвечать в режиме реального времени с помощью ChatGPT.

В ролике можно увидеть, как Spot отвечает на вопросы о своем уровне заряда батареи, деталях задания и многом другом. Также робопёс может давать ответы “да” или “нет”, кивая или качая головой. Или отойти от “хозяина”, если он попросит.

Очень логичное продолжение - соединить языковую модель и роботов. Комментарии про захват “кожаных мешков” через 3,2,1…

@droidergram
Forwarded from Senior SQL Developer
Сравнение результатов двух SQL запросов выборки: EXCEPT, INTERSECT и SELECT

Оператор EXCEPT используется для вычитания результатов одного запроса из другого запроса. Другими словами, он возвращает только те строки, которые присутствуют в первом запросе, но отсутствуют во втором запросе.

Оператор INTERSECT используется для получения только тех строк, которые присутствуют в обоих запросах.

Оператор SELECT используется для выборки данных из таблицы.

Оператор EXCEPT вычитает результаты одного запроса из другого, а оператор INTERSECT находит только те строки, что присутствуют в обоих запросах. SELECT используется для выборки данных из таблицы. При использовании SQLite для работы с базами данных важно учитывать особенности каждого из этих операторов.
​​⚙️ Сохраняем историю запросов psql в файл.

Такое может пригодиться для дальнейшего анализа запросов, расследования инцидентов, связанных с безопасностью базы данных, или просто чтобы разобраться кто накосячил и снёс пол базы 😅 А может у вас родился какой-то гениальный запрос, который вы не можете больше повторить, а тут он в файле сохранится 😉

Для установки файла для записи воспользуемся следующей командой psql:

\set HISTFILE ~/.psql_history- :DBNAME

HISTFILE - это переменная, которая определяет файл для истории запросов.

Если эта переменная не определена, то значение берется из переменной окружения PSQL_HISTORY. Если и эта переменная не определена, то значением по умолчанию будет ~/.psql_history - для Linux систем и APPDATA%\postgresql\psql_history - для Windows.

В нашем примере psql будет вести отдельный файл с историей команд для каждой базы данных в кластере. Мы можем вместо DBNAME указать конкретное имя базы, и тогда история будет вестись только для нее.

Также мы можем поместить данную команду в файл .psqlrc и тогда нам не придется прописывать эту команду каждый раз при запуске psql.

#psql
Forwarded from Senior SQL Developer
Создание поля, объединяющего имя и зарплату в выборке из таблицы пользователей

Для создания поля, которое будет включать в себя и имена, и зарплату, можно использовать функцию CONCAT(). Она объединяет две или более строковые величины в одну строку.

Пример SQL-запроса для создания поля new_field на фото.

В примере мы выбираем таблицу users и создаем новое поле с помощью функции CONCAT(). Внутри функции указываем два поля, которые хотим объединить - name и salary. Также задаем новое имя для созданного поля - new_field, используя AS.

Теперь в результате выполнения запроса в выборке будет присутствовать новое поле new_field, которое будет содержать имя пользователя и его зарплату.
Forwarded from loldev();
Проблемы своего времени
Forwarded from Senior SQL Developer
#вопросы_с_собеседований

Что такое нормализация и денормализация?

Нормализация отношений в SQL призвана организовать информацию в базе данных таким образом, чтобы она не занимала много места и с ней было удобно работать. Это удаление избыточных данных, устранение дублей, идентификация наборов связанных данных через PRIMARY KEY, etc.

Соответственно, денормализация является обратным процессом, который вносит в нормализованную таблицу избыточные данные.
​​👨🏻‍🎓 Управление параметрами транзакции в PostgreSQL.

Мы уже с вами знаем как открывать транзакцию, фиксировать ее и откатывать изменения, а также как ставить точки сохранения внутри транзакции.

Теперь давайте разберемся какими параметрами транзакции мы можем управлять. Одни из таких параметров - это READ WRITE и READ ONLY.

READ WRITE - это транзакция для записи и чтения данных.

READ ONLY - транзакция только для чтения.

Пример:

BEGIN READ ONLY; - открываем транзакцию только для чтения

CREATE TABLE test (id int); - пытаемся создать таблицу test

ERROR: cannot execute CREATE TABLE in a read-only transaction - получаем ошибку

#queries
Forwarded from Senior SQL Developer
🖥 Как в sql посчитать количество повторяющихся значений

Можно попробовать использовать функцию COUNT() в сочетании с оператором GROUP BY.

Предположим, у нас есть таблица "orders" с колонками "customer_name" и "order_date", и мы хотим посчитать, сколько заказов было сделано каждым клиентом. Мы можем написать следующий SQL-запрос:

SELECT customer_name, COUNT(*) as order_count
FROM orders
GROUP BY customer_name

Этот запрос выберет все уникальные значения из колонки "customer_name" в таблице "orders" и подсчитает количество строк, связанных с каждым уникальным значением. Результатом запроса будет таблица со столбцами "customer_name" и "order_count", в которой каждая строка будет показывать клиента и количество его заказов.
Please open Telegram to view this post
VIEW IN TELEGRAM
set.update

Метод update() обновляет текущее множество, добавляя элементы из другого множества (или любого другого итерируемого). Если предмет присутствует в обоих множествах, в обновленном множестве будет присутствовать только один экземпляр этого предмета.

#практика