Какое ключевое слово нельзя использовать вместе с оператором ROLLUP?
Anonymous Quiz
21%
LIMIT
13%
GROUP BY
11%
ORDER BY
22%
HAVING
33%
Посмотреть ответ
👍10❤2😱1
Для сортировки по возрастанию используется следующая конструкция:
Anonymous Quiz
8%
GROUP BY имя_поля DESC
70%
ORDER BY имя_поля ASC
17%
ORDER BY имя_поля DESC
5%
GROUP BY имя_поля ASC
👍12🔥1
#Вопросы_с_собеседования
❓При выборке из таблицы workers создайте новое поле res, в котором будет строка 'eee'.
Ответ на картинке.
❓При выборке из таблицы workers создайте новое поле res, в котором будет строка 'eee'.
Ответ на картинке.
👍7
Запрос, возвращающий все значения из таблицы «Countries», за исключением страны с ID=8, имеет вид
Anonymous Quiz
5%
SELECT * FROM Countries EXP ID=8
7%
SELECT * FROM Countries EXPEPT ID=8
83%
SELECT * FROM Countries WHERE ID !=8
5%
Нет верного ответа
👍10
Что покажет следующий запрос:
select concat(`index`," ", `city`) AS delivery_address from Orders;
select concat(`index`," ", `city`) AS delivery_address from Orders;
Anonymous Quiz
18%
Ничего, запрос составлен неверно
5%
Покажет уникальные значения индексов и адресов из таблицы Orders
63%
Соединит поля с индексом и адресом из таблицы Orders и покажет их с псевдонимом delivery_address
6%
Соединит поля с индексом и адресом из таблицы Orders, по покажет их без псевдонима
8%
Посмотреть ответ
👍12😱2
🐣 Курс по SQL для начинающих
Сейчас любая деятельность программиста связана с работой с базой данных. Это значит, что вам в любом случае надо будет работать с SQL, который, к слову, не особо сложно изучить.
1. Введение в PostgreSQL — [2:06:30]
2. Базовые SELECT запросы — [1:58:17]
3. Соединения (JOIN) — [1:07:31]
4. Подзапросы в SQL — [47:12]
5. DDL: создание БД, таблиц и их модификация — [1:50:44]
Сейчас любая деятельность программиста связана с работой с базой данных. Это значит, что вам в любом случае надо будет работать с SQL, который, к слову, не особо сложно изучить.
1. Введение в PostgreSQL — [2:06:30]
2. Базовые SELECT запросы — [1:58:17]
3. Соединения (JOIN) — [1:07:31]
4. Подзапросы в SQL — [47:12]
5. DDL: создание БД, таблиц и их модификация — [1:50:44]
YouTube
Практический курс по SQL для начинающих - #1 Введение в PostgreSQL
Данный курс на YouTube - сильно укороченная (демо) версия полного курса, который вы можете приобрести на stepik (с карточкой из РФ) или Udemy (с карточкой не из РФ)
Купить полный курс на stepik:
https://www.engineerspock.com/buy-postgres-youtube-stepik …
Купить полный курс на stepik:
https://www.engineerspock.com/buy-postgres-youtube-stepik …
👍9🔥4
#Вопросы_с_собеседования
❓Даны две таблицы: таблица category с полями id и name и таблица page с полями id, name и category_id. Достаньте одним запросом все страницы вместе с их категориями
Ответ на картинке.
❓Даны две таблицы: таблица category с полями id и name и таблица page с полями id, name и category_id. Достаньте одним запросом все страницы вместе с их категориями
Ответ на картинке.
👍12
Что покажет следующий запрос:
select DISTINCT seller_id order by seller_id from Orders;
select DISTINCT seller_id order by seller_id from Orders;
Anonymous Quiz
23%
Уникальные ID продавцов, отсортированные по возрастанию
10%
Уникальные ID продавцов, отсортированные по убыванию
57%
Ничего: запрос составлен неверно, ORDER BY всегда ставится в конце запроса
6%
Никак не отсортированные ID продавцов
5%
Посмотреть ответ
👍2
Извлекаем имя из адреса электронной почты
Где "YourTable" - это название вашей таблицы, содержащей столбец с адресами электронной почты.
Этот запрос использует функцию "LEFT", чтобы извлечь часть строки до символа "@", а функция "CHARINDEX" используется для нахождения позиции символа "@". Результат запроса будет содержать столбец с именами, извлеченными из адресов электронной почты.
Где "YourTable" - это название вашей таблицы, содержащей столбец с адресами электронной почты.
Этот запрос использует функцию "LEFT", чтобы извлечь часть строки до символа "@", а функция "CHARINDEX" используется для нахождения позиции символа "@". Результат запроса будет содержать столбец с именами, извлеченными из адресов электронной почты.
👍9
Как полностью очистить таблицу sql
Полностью очистить таблицу, не удаляя её можно с помощью запроса DELETE. Мы указываем имя таблицы, но опускаем блок WHERE. Тогда удаляются абсолютно все записи, вне зависимости от условий.
Кроме DELETE без условий можно использовать TRUNCATE. У неё есть свои особенности. Самая главная, она быстрее DELETE, так как не сканирует таблицы перед очисткой и наиболее полезна для очистки больших таблиц.
Полностью очистить таблицу, не удаляя её можно с помощью запроса DELETE. Мы указываем имя таблицы, но опускаем блок WHERE. Тогда удаляются абсолютно все записи, вне зависимости от условий.
DELETE FROM wiped_table_name;
-- Мы очистили таблицу wiped_table_nameКроме DELETE без условий можно использовать TRUNCATE. У неё есть свои особенности. Самая главная, она быстрее DELETE, так как не сканирует таблицы перед очисткой и наиболее полезна для очистки больших таблиц.
TRUNCATE cars, cups, parrots;
-- Тут можно перечислять сколько угодно таблиц🔥4
Организация хранения исторических данных в Oracle
Сегодня поговорим о разных способах организации хранения исторических данных в Oracle.
Смотреть статью
Сегодня поговорим о разных способах организации хранения исторических данных в Oracle.
Смотреть статью
👍4
Что вернет запрос "select 1 from USERS" (если таблица USERS существует)?
Anonymous Quiz
20%
"1"
4%
Количество строк в таблице USERS
21%
Первую строчку таблицы USERS
30%
"1" столько раз, сколько строк в таблице USERS
17%
Ошибку выполнения запроса
8%
Посмотреть ответы
👍20
#Вопросы_с_собеседования
Удержание пользователей в месяц
Контекст: допустим, у нас есть статистика по авторизации пользователей на сайте в таблице logins:
Задача: написать запрос, который получает количество удержанных пользователей в месяц. В нашем случае данный параметр определяется как количество пользователей, которые авторизовались в системе и в этом, и в предыдущем месяце.
Решение:
Удержание пользователей в месяц
Контекст: допустим, у нас есть статистика по авторизации пользователей на сайте в таблице logins:
| user_id | date |
|---------|------------|
| 1 | 2018-07-01 |
| 234 | 2018-07-02 |
| 3 | 2018-07-02 |
| 1 | 2018-07-02 |
| ... | ... |
| 234 | 2018-10-04 |
Задача: написать запрос, который получает количество удержанных пользователей в месяц. В нашем случае данный параметр определяется как количество пользователей, которые авторизовались в системе и в этом, и в предыдущем месяце.
Решение:
SELECT
DATE_TRUNC('month', a.date) month_timestamp,
COUNT(DISTINCT a.user_id) retained_users
FROM
logins a
JOIN
logins b ON a.user_id = b.user_id
AND DATE_TRUNC('month', a.date) = DATE_TRUNC('month', b.date) +
interval '1 month'
GROUP BY
date_trunc('month', a.date)👍19
#Вопросы_с_собеседования
❓Выберите из таблицы workers все записи так, чтобы вместо id было userId, вместо login – userLogin, вместо salary - userSalary
Ответ на картинке.
❓Выберите из таблицы workers все записи так, чтобы вместо id было userId, вместо login – userLogin, вместо salary - userSalary
Ответ на картинке.
👍11
Как вернуть количество записей в таблице "Customers"?
Anonymous Quiz
81%
SELECT COUNT(*) FROM Customers
5%
SELECT COLUMNS(*) FROM Customers
10%
SELECT COUNT() FROM Customers
1%
SELECT COLUMNS() FROM Customers
3%
Посмотреть ответы
👍14🔥1
Как откатить часть транзакции внутри функции или процедуры?
BEGIN;
INSERT INTO table1 VALUES (1);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint; --rollback previous command
INSERT INTO table1 VALUES (3);
COMMIT;
Внутри функции или процедуры код выше завершится с ошибкой, например в is_sql.sql. Но вы можете откатить часть SQL команд в транзакции через подтранзакции:
DO $TEST$
BEGIN
-- here you can write DDL commands, for example, adding or deleting a table or its section
-- and/or
-- here you can write DML commands that modify data in tables and, thus, check the operation of triggers
-- rollback all test queries
raise exception using errcode = 'query_canceled';
EXCEPTION WHEN query_canceled THEN
--don't do anything
END
$TEST$;👍7🔥3