Трюк дня. Улучшить производительность запроса к таблице с индексом. Решение
При использовании функции
Поэтому для лучшей производительности запрос лучше писать следующим образом:
При использовании функции
DATEPART происходит неявное преобразование типа данных. И индекс не будет использован. Поэтому для лучшей производительности запрос лучше писать следующим образом:
*
FROM test
WHERE signup_date >= '20210101'
AND signup_date < '20220101';
#tipsЧто из следующего неверно об ограничении FOREIGN KEY?
Anonymous Quiz
25%
Устанавливает связь между первичным ключом или уникальным ключом в той же или другой таблице.
27%
Значение внешнего ключа не может быть NULL.
23%
Значение внешнего ключа должно соответствовать существующему значению в таблице-родителе.
15%
Ничего из перечисленного
9%
Узнать ответ
#вопрос25
В чем разница между функциями
Приведите пример.
#вопросы #собеседование
В чем разница между функциями
RANK() и DENSE_RANK()? Приведите пример.
#вопросы #собеседование
Ответ на #вопрос25
Единственная разница между функциями
В таких случаях
Тогда как
Например, рассмотрим набор
Для такого набора RANK() вернет
Единственная разница между функциями
RANK() и DENSE_RANK() заключается в случаях, когда несколько значений в наборе имеют одинаковый ранг. В таких случаях
RANK() будет назначать непоследовательные «ранги» значениям в наборе.Тогда как
DENSE_RANK() будет назначать последовательные ранги значениям в наборе.Например, рассмотрим набор
{25, 25, 50, 75, 75, 100}. Для такого набора RANK() вернет
{1, 1, 3, 4, 4, 6} (обратите внимание, что значения 2 и 5 пропущены), тогда как DENSE_RANK() вернет {1, 1, 2, 3, 3, 4}.
#вопросы #собеседование👍2
Трюк дня. Частичные ограничения на значения в PostgreSQL
Cоздайте ограничение (constraint) на таблицу
Однако, есть дополнительное требование: допускается существование только одной записи с некой строкой и значением
Например, может быть несколько
Решение будет вечером.
#tips
Cоздайте ограничение (constraint) на таблицу
foobar. Ограничение должно проверять уникальность двух полей: строкового bar и логического bing. Однако, есть дополнительное требование: допускается существование только одной записи с некой строкой и значением
TRUE. В то же время, допускается несколько записей с некой строкой, но значением FALSE. Например, может быть несколько
{«abc», false}, но только одна строка {«abc», true}.Решение будет вечером.
#tips
Трюк дня. Частичные ограничения на значения в PostgreSQL. Решение
Для решения данной задачи используем механизм частичных индексов (partial indices).
#tips
Для решения данной задачи используем механизм частичных индексов (partial indices).
CREATE TABLE foobar(bar TEXT, bing BOOLEAN);В результате выполнения последнего
CREATE UNIQUE INDEX baz_index ON foobar(bar, bing) WHERE bing = 't';
INSERT INTO foobar VALUES('1','t');
INSERT INTO foobar VALUES('2','t');
INSERT INTO foobar VALUES('1','f');
INSERT INTO foobar VALUES('1','f');
INSERT INTO foobar VALUES('1','t');
INSERT получим следующее сообщение:ERROR: duplicate key value violates unique constraint «baz_index» #tips
Какой PostgreSQL запрос не выберет все записи, где city не равно Oslo?
Anonymous Quiz
9%
SELECT * FROM users WHERE NOT city = ‘Oslo’;
17%
SELECT * FROM users WHERE city NOT IN (‘Oslo’);
26%
SELECT * FROM users WHERE city != ‘Oslo’;
39%
SELECT * FROM users WHERE city = ‘Oslo’;
5%
Ничего из перечисленного
4%
Посмотреть ответы
#вопрос26
Отработает ли данный PostgreSQL запрос или упадет с ошибкой:
#вопросы #собеседование
Отработает ли данный PostgreSQL запрос или упадет с ошибкой:
SELECTПримечание: все поля существуют в таблице и соответствуют нужному типу данных.
id,
SUM (value) OVER (PARTITION BY i ORDER BY y),
*
FROM table1;
#вопросы #собеседование
Ответ на #вопрос26
Да, отработает.
Классический пример аналитической функции, внутри которой сначала выполняется группировка (
В данном случае все написано правильно.
Этот вопрос проверяет у кандидата знание оконных функций.
#вопросы #собеседование
Да, отработает.
Классический пример аналитической функции, внутри которой сначала выполняется группировка (
PARTITION BY), потом выполняется сортировка (ORDER BY) и применяется агрегирующая функция. В данном случае все написано правильно.
Этот вопрос проверяет у кандидата знание оконных функций.
#вопросы #собеседование
👍2
Ответ на #вопрос27
1.
2.
3.
4.
#вопросы #собеседование
1.
DELETE:Используется для удаления строки в таблицеTRUNCATE:Используется для удаления всех строк из таблицы2.
DELETE:Вы можете восстановить данные после удаленияTRUNCATE:Вы не можете восстановить данные (прим. перевод.: операции логируются по разному, но в SQL Server есть возможность сделать откат) транзакции)3.
DELETE:DML-командаTRUNCATE:DDL-команда4.
DELETE:Медленнее, чем оператор TRUNCATETRUNCATE:Быстрее#вопросы #собеседование
👍5
Какое из следующих MySQL выражений вернёт строки, которые НЕ начинаются с букв a, b или с?
Anonymous Quiz
23%
WHERE value REGEXP ^[abc];
18%
WHERE value REGEXP ^[^abc];
20%
WHERE value REGEXP ^_[abc];
23%
WHERE value REGEXP ^[abc]*;
16%
Посмотреть ответы
👍2