Ответ на #вопрос10
Да, отработает. В SQL допускается перечисление не всех полей в разделе
В данном примере группировка выполняется по двум полям, а выводится на экран одно поле. А вот наоборот сделать уже нельзя.
#вопросы #собеседование
Да, отработает. В SQL допускается перечисление не всех полей в разделе
SELECT, если мы группируем по нескольким полям. В данном примере группировка выполняется по двум полям, а выводится на экран одно поле. А вот наоборот сделать уже нельзя.
#вопросы #собеседование
Tips & Tricks. Очистка raw data в SQL
В этой статье мы рассмотрим несколько примеров, как очистить реальные данные так, чтобы можно было их использовать для дальнейшей работы с ними.
#sql
Читать статью
В этой статье мы рассмотрим несколько примеров, как очистить реальные данные так, чтобы можно было их использовать для дальнейшей работы с ними.
#sql
Читать статью
👍2
Трюк дня. Ранг без
Напишите SQL-запрос, который будет ранжировать
Решение будет вечером.
#tips
RANK()Напишите SQL-запрос, который будет ранжировать
scores из таблицы scores без использования оконной функции. Одинаковые scores должны иметь одинаковый ранг. Ранг, следующий за одинаковыми scores, должен быть следущий целым числом (см. ожидаемый результат на картинке выше). Решение будет вечером.
#tips
⚡1👍1
Трюк дня. Ранг без RANK(). Решение.
Соединим таблицу саму на себя, сравнивая
Подсчитаем все уникальные значения объединённых
Соединим таблицу саму на себя, сравнивая
score.Подсчитаем все уникальные значения объединённых
score. Это и даёт эквивалент DENSE_RANK(). SELECT s1.score, count(DISTINCT s2.score) AS score_rank
FROM scores s1
JOIN scores s2
ON s1.score <= s2.score
GROUP BY s1.id, s1.score
ORDER BY 1 DESC
#tipsКакой из перечисленных ниже PostgreSQL запросов вернет результат как на картинке выше?
Anonymous Quiz
18%
VALUES ('Blue'), ('Red'), ('Green');
26%
SELECT 'Blue', 'Red', 'Green';
22%
SELECT ['Blue', 'Red', 'Green'];
21%
Ничего из перечисленного
13%
Посмотреть ответы
Ответ на #вопрос11
Учитывая, что
name score
Alex 5
Sam 1
Sam 11
NULL 4
NULL 3
Тогда запрос
name sc
Alex 5
Sam 12
NULL 7
#вопросы #собеседование
Учитывая, что
NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:name score
Alex 5
Sam 1
Sam 11
NULL 4
NULL 3
Тогда запрос
SELECT name, SUM (score) AS scвыдаст:
FROM table
GROUP BY name;
name sc
Alex 5
Sam 12
NULL 7
#вопросы #собеседование
👍1
Tips & Tricks. Работа со столбцами AUTO_INCREMENT в MySQL
В этой статье мы расскажем, для чего используется AUTO_INCREMENT и как им управлять.
#sql
Читать статью
В этой статье мы расскажем, для чего используется AUTO_INCREMENT и как им управлять.
#sql
Читать статью
Telegraph
Работа со столбцами AUTO_INCREMENT в MySQL
Автоинкремент позволяет автоматически генерировать уникальный номер каждый раз, когда в таблицу добавляется новая запись. Эта функция особенно полезна для поля первичного ключа, чтобы ключ автоматически устанавливался при каждом добавлении новой записи. Хотя…
Сколько записей вернет следующий PostgreSQL запрос:
VALUES (11), (22), (33) INTERSECT VALUES (55), (33), (33);
VALUES (11), (22), (33) INTERSECT VALUES (55), (33), (33);
Anonymous Quiz
34%
1
23%
2
21%
3
6%
Ничего из перечисленного
17%
Посмотреть ответы
#вопрос12
Таблица
Таблица
employee имеет две колонки: emp_name и emp_id. Какой результат возвратит следующий SQL запрос:SELECT emp_name FROM employee ORDER BY 2 DESC;#вопросы #собеседование
Ответ на #вопрос12
В запросе выше, даже с учетом того, что таблица
#вопросы #собеседование
ORDER BY 2 сработает только в том случае, когда в SELECT указаны по крайней мере две колонки. В запросе выше, даже с учетом того, что таблица
employee содержит 2 колонки, выбирается только 1 колонка. Поэтому такой запрос будет выдавать ошибку. #вопросы #собеседование
Как получить значение текущего года в PostgreSQL?
Anonymous Quiz
6%
SELECT NOW();
42%
SELECT YEAR (NOW());
31%
SELECT DATE_PART ('year', NOW());
13%
SELECT YEAR FROM DATE;
9%
Посмотреть ответы
#вопрос13
Есть две таблицы как на картинке выше:
Есть две таблицы как на картинке выше:
envelope и docs. Расскажите, какой результат возвратит следующий MySQL запрос и обоснуйте свой ответ:UPDATE docs INNER JOIN envelope ON envelope.id = docs.idnum#вопросы #собеседование
SET docs.doctext = docs.pageseq
WHERE EXISTS (
SELECT 1 FROM envelope
WHERE id = envelope.id
);
SELECT * FROM docs;
Ответ на #вопрос13
Результат будет выглядеть так:
idnum pageseq doctext
1 5 5
2 6 6
NULL 0 NULL
Оператор
#вопросы #собеседование
Результат будет выглядеть так:
idnum pageseq doctext
1 5 5
2 6 6
NULL 0 NULL
Оператор
EXISTS – это отвлекающий маневр. Тут всегда будет true, т. к. id не является членом таблицы envelope. Таким образом, id будет сравнивать себя с самим собой.#вопросы #собеседование
Статья дня. Как работать с json в Postgresql?
json — самый популярный, на данный момент, формат сериализации данных, состоящий из пар ключ-значение. Является нативным для Javascript и поддерживается абсолютно всеми языками программирования.
PostgreSQL нативно поддерживает json с версии 9.2. И до этого у постгри был тип данных для пар ключ-значение, но не настолько гибкий и с куда менее полным функционалом. Сейчас это мощнейший и удобнейший инструмент.
#sql
Читать статью
json — самый популярный, на данный момент, формат сериализации данных, состоящий из пар ключ-значение. Является нативным для Javascript и поддерживается абсолютно всеми языками программирования.
PostgreSQL нативно поддерживает json с версии 9.2. И до этого у постгри был тип данных для пар ключ-значение, но не настолько гибкий и с куда менее полным функционалом. Сейчас это мощнейший и удобнейший инструмент.
#sql
Читать статью
Telegraph
Как работать с json в Postgresql?
PostgreSQL — одна из наиболее универсальных баз данных. Если нет каких-то специфических требований, то лучше использовать именно её. Какое-то время назад, на волнах хайпа, MongoDB стремительно вырывалась вперёд, но уже много лет и PostgreSQL отлично умеет…
Трюк дня. Как сделать Case Sensitive сравнение в MySQL
Есть таблица
И в столбце
• sPg
• SPG
• spg
Напишите MySQL-запрос, который выберет только значения = ‘SPG‘.
Решение будет вечером.
#tips
Есть таблица
enterprise, созданная следующим MySQL запросом:CREATE TABLE enterprise (company TEXT); И в столбце
company содержатся следующие значения:• sPg
• SPG
• spg
Напишите MySQL-запрос, который выберет только значения = ‘SPG‘.
Решение будет вечером.
#tips
Трюк дня. Как сделать Case Sensitive сравнение в MySQL. Решение
Небинарные строки (CHAR, VARCHAR, TEXT) в MySQL по умолчанию не чувствительны к регистру. Поэтому запрос
Для вывода только одной записи с ‘SPG’ существуют следующие решения:
1. Приведение столбца к типу
2. Выбор чувствительного к регистру набора символов с помощью
Детальную документацию смотрите здесь.
#tips
Небинарные строки (CHAR, VARCHAR, TEXT) в MySQL по умолчанию не чувствительны к регистру. Поэтому запрос
SELECT * FROM enterprise WHERE company = ‘SPG‘ выведет все три строки. Для вывода только одной записи с ‘SPG’ существуют следующие решения:
1. Приведение столбца к типу
BINARY (т.к. тип BINARY чувствителен к регистру): SELECT * FROM enterprise WHERE BINARY company = ‘SPG‘;
2. Выбор чувствительного к регистру набора символов с помощью
COLLATE:SELECT * FROM enterprise WHERE company COLLATE utf8mb4_0900_as_cs = ‘SPG‘;Детальную документацию смотрите здесь.
#tips
Есть таблица EMPLOYEES (code, first_name, last_name, department_id);
Какой из следующих запросов отобразит всех работников, у которых вторая буква в имени - ‘i‘?
Какой из следующих запросов отобразит всех работников, у которых вторая буква в имени - ‘i‘?
Anonymous Quiz
71%
SELECT first_name FROM employees WHERE first_name LIKE ‘_i%‘;
7%
SELECT first_name FROM employees WHERE first_name LIKE ‘%i_‘;
13%
SELECT first_name FROM employees WHERE first_name LIKE ‘%i%‘;
6%
SELECT first_name FROM employees WHERE first_name LIKE ‘_i_‘;
3%
Посмотреть ответы