### SQL - [SQL Оконные функции простым языком](https://habr.com/ru/articles/1046325/) ### 2 - [FIFO на миллионах строк: как подружить бонусы, SQL и асимметричный N×M-граф](https://habr.com/ru/companies/avito/articles/1043532/) будет полезна аналитикам и data-инженерам уровней мидл+, которые работают с финансовыми данными в Trino, Presto и Spark SQL. ### constructor - constructor - [SAP Hana Calculation View](https://habr.com/ru/articles/948888/) Тебе не надо будет писать SQL - Knex [Schema-driven ORM для TypeScript: @cleverbrush/knex-schema и @cleverbrush/orm](https://habr.com/ru/articles/1046405/) Люди часто выбирают Knex, когда хотят оставаться близко к SQL, но не хотят каждый раз руками собирать SELECT ... WHERE ... и следить за плейсхолдерами. Это хороший промежуточный слой между raw SQL и тяжёлой ORM - Само название ORM достаточно хорошо отражает его задачу: объектно-ориентированное сопоставление/отображение. ORM нужен для того, чтобы не приходилось вручную сопоставлять данные из хранилища данных с объектами приложения. - Сейчас ORM воспринимается как дефолтный API для БД: прячет большую часть SQL-рутины, берёт на себя маппинг, жизненный цикл сущностей, отслеживание изменений. - Для нереляционной БД устоявшийся термин — ODM (Object-Document Mapping). ### COUNT_DISTINCT COUNT(DISTINCT column_name) /особый/ — это SQL-функция, используемая для подсчета количества уникальных (различных) ненулевых значений в заданном столбце. В отличие от обычного COUNT, она удаляет повторяющиеся значения перед подсчетом, позволяя узнать число уникальных элементов. ## also - https://github.com/bpmbpm/doc/blob/main/IT/DBMS/sql.md