_moire.experience}}%
350 subscribers
73 photos
9 videos
1 file
55 links
through a glass, darkly 🍄 ✉️ @izomeraz4
Download Telegram
Евгений Умнов
#moire_experience
#sql #postgresql
PostgreSQL (как и, наверное, другие СУБД) пользуется троичной логикой для разрешения логических предикатов (True, False, undefined). Поэтому для любых предикатов результаты не будут включать в себя строки, значения которых были NULL, так как для них логический результат будет неопределен, а возвращаются лишь строки, разрешающиеся в True.
#sql #postgresql
Чтобы явно указывать при сортировке, куда ставить NULL-значения — в конец или начало, можно приписывать nulls last или nulls first.
select * from customers order by last_name desc nulls last

По дефолту включено asc и nulls last. Для desc по дефолту — nulls first.
#sql #postgresql
В общем случае ключевые слова и команды обрабатываются в следующем порядке:
1) from — идём в нужную таблицу;
2) where — применяем предикаты для отбора по условию;
3) group by
4) having — фильтруем сагреггированные результаты;
5) select — отбираем нужные атрибуты;
6) order by — сортируем результат;
7) limit — и обрубаем нужное количество.

Ну это, конечно, упрощение, но именно из-за этого порядка мы не можем обращаться к алиасам выборки в предикатах, но можем в order by, так как он идёт после обработки select.
#sql #postgresql
В order by тоже можно использовать case when.
Например, мы хотим выводить список имеющихся стран, отсортированный по алфавиту, но первыми выводить всегда US, UK, France.

Это можно сделать так:
select country
from country
order by
case country
when 'US' then 0
when 'UK' then 1
when 'France' then 2
else 3
end, country;


Чтобы отсортировать оставшиеся страны (одинаковые с порядком 3), мы дописываем второй аргумент сортировки, именно это отсортирует остальное по алфавиту по возрастанию.

Кстати, здесь использована упрощённая форма case, если вы о ней не знали, то обратите внимание, что атрибут вынесен сразу после слова case, а дальше просто перечисляются значения. NULL при этом таким образом отдельно обработать нельзя, так как он требует не равенства, а ключевого слова is, и чтобы описать поведение для пустого значения, надо использовать полную форму.
#sql #postgresql

Как с помощью функции random() возвращать по пять рандомных клиентов (при каждом вызове разных):
select first_name, last_name, email
from customer
order by random()
limit 5;
«Стать лесом, видящим сны <...> про своих обитателей». (с) Роман Михайлов, «Изнанка крысы»
#pandas
pandas_profiling — пишут, что очень медленный пакет, но надо не забыть попробовать. Зато сразу все графички про данные.

https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d
Степан Зограбян
#moire_experience
Фет читает стихотворение «Не спрашивай
о чем задумываюсь я».
Перед его мысленным взором носится стая
ворон и своим карканьем мешает ему читать.

***
Хлебников в Торжке читает лекцию о
строительстве подземного железнодорожного
туннеля под Гималаями.
Он читает так тихо, что его почти не
слышно.
Сам же Хлебников слышит, как где-то
свистит паровоз. Этот свист пленяет его душу,
он забывает закончить лекцию и уходит
неизвестно куда.

(с) А. Монастырский
https://rvb.ru/np/publication/01text/33/01monastyrsky.htm

#moire_experience
А много ли мне в жизни надо?
Уже и слова не скажу
Как лейбницевская монада
Лечу и что-то там жужжу
Какой-нибудь другой монаде
Она ж в ответ мне: Бога ради
Не жужжи

(с) Дмитрий Пригов

#moire_experience
Тыквенный торт в Кафетериусе — обман. Ну нельзя же было всерьез думать, что можно сделать нормальный десерт из тыквы. Всю дорогу кажется, будто торт — морковный, пока не наступает странное послевкусие, и вы пугаетесь
Жан Деготекс, Метасфера (II), 1965
#moire_experience
Артур-Луиз Пиза, Зелёный космос, 1969

#moire_experience
Виктор Вазарелли. Вигавив II. 1955

#moire_experience