👍1
Трюк дня. COALESCE() для перезаписи NULL
При помощи функции COALESCE() можно перезаписать NULL на другое значение:
Запрос вернёт значение ‘missing‘ для всех строк таблицы, где null_var IS NULL
#tips
При помощи функции COALESCE() можно перезаписать NULL на другое значение:
SELECT
id,
null_var,
COALESCE(null_var, 'missing') AS recode_null_var
FROM
current_table
ORDER BY idЗапрос вернёт значение ‘missing‘ для всех строк таблицы, где null_var IS NULL
#tips
Что выведет этот код, если in_basket IS NULL?
Anonymous Quiz
7%
0
29%
price*ordered
41%
NULL
19%
ошибку
5%
ничего из перечисленного
Tips & Tricks. Порядок исполнения в SQL
Разбираем, каков порядок исполнения операторов в SQL. И как можно улучшить производительность запросов.
#sql
Читать статью
Разбираем, каков порядок исполнения операторов в SQL. И как можно улучшить производительность запросов.
#sql
Читать статью
Трюк дня. Объединить значения из нескольких строк таблицы в одну, группируя по определённому параметру.
Например, есть таблица:
id name value
1 A 4
1 B 8
2 C 9
В результате нужно получить следующее:
id column
1 A:4, B:8
2 C:9
В SQL Server 2017, Azure можно использовать функцию STRING_AGG:
STRING_AGG(
CONCAT(name,’:’,[value], ‘, ‘)
#tips
Например, есть таблица:
id name value
1 A 4
1 B 8
2 C 9
В результате нужно получить следующее:
id column
1 A:4, B:8
2 C:9
В SQL Server 2017, Azure можно использовать функцию STRING_AGG:
SELECT
id,STRING_AGG(
CONCAT(name,’:’,[value], ‘, ‘)
FROM table
GROUP BY id
#tips
Трюк дня. Получить id покупки с максимальной value для каждого customer.
Например, есть таблица:
id customer value
1 Alex 5
2 Sam 1
3 Sam 3
В результате нужно получить следующее:
id customer value
1 Alex 5
3 Sam 3
В PostgreSQL можно использовать оператор DISTINCT ON:
customer,
value
#tips
А какие варианты решения вы знаете?
Например, есть таблица:
id customer value
1 Alex 5
2 Sam 1
3 Sam 3
В результате нужно получить следующее:
id customer value
1 Alex 5
3 Sam 3
В PostgreSQL можно использовать оператор DISTINCT ON:
SELECT
DISTINCT ON(customer)
id,customer,
value
FROM table
ORDER BY customer, value DESC, id
#tips
А какие варианты решения вы знаете?