SQL Pro - всё об SQL
Реклама: @anothertechrock
Контент канала:
1. Разбор вопросов с собеседований
2. Трюки SQL
3. Видео
4. Тесты
5. Задачи на логику
6. Юмор
Post #322
3.45K
SQ @sqlprofi
Showing posts older than #324 · Back to latest
DELETE:Используется для удаления строки в таблицеTRUNCATE:Используется для удаления всех строк из таблицыDELETE:Вы можете восстановить данные после удаленияTRUNCATE:Вы не можете восстановить данные (прим. перевод.: операции логируются по разному, но в SQL Server есть возможность сделать откат) транзакции)DELETE:DML-командаTRUNCATE:DDL-командаDELETE:Медленнее, чем оператор TRUNCATETRUNCATE:БыстрееDELETE и TRUNCATE?SELECT email, COUNT (email)
FROM customers
GROUP BY email
HAVING COUNT (email) > 1;emailcustomers выберите только те email, у которых есть дубликаты. email. 
PARTITION BY), потом выполняется сортировка (ORDER BY) и применяется агрегирующая функция. SELECTПримечание: все поля существуют в таблице и соответствуют нужному типу данных.
id,
SUM (value) OVER (PARTITION BY i ORDER BY y),
*
FROM table1;
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» foobar. Ограничение должно проверять уникальность двух полей: строкового bar и логического bing. TRUE. В то же время, допускается несколько записей с некой строкой, но значением FALSE. {«abc», false}, но только одна строка {«abc», true}.RANK() и DENSE_RANK() заключается в случаях, когда несколько значений в наборе имеют одинаковый ранг. RANK() будет назначать непоследовательные «ранги» значениям в наборе.DENSE_RANK() будет назначать последовательные ранги значениям в наборе.{25, 25, 50, 75, 75, 100}. {1, 1, 3, 4, 4, 6} (обратите внимание, что значения 2 и 5 пропущены), тогда как DENSE_RANK() вернет {1, 1, 2, 3, 3, 4}.
#вопросы #собеседованиеRANK() и DENSE_RANK()? DATEPART происходит неявное преобразование типа данных. И индекс не будет использован. *
FROM test
WHERE signup_date >= '20210101'
AND signup_date < '20220101';
#tipstest в столбце signup_date содержатся данные типа date. Для этого стоблца существует индекс. SELECT
*
FROM test
WHERE DATEPART (YEAR, signup_date) = '2021';

