3 января 2018
Тэги: PostgreSQL, SQL, головоломки.
Каждый знает такую функцию SQL, как SUM(). Она позволяет посчитать сумму всех значений по определённому столбцу. Но что, если нам вдруг понадобится посчитать не сумму, а произведение всех значений?
Как ни странно, функция SUM() нам тоже пригодится. Как нам от произведения перейти к сумме? Вспомним начала матанализа: логарифм произведения равен сумме логарифмов. Будем использовать натуральный логарифм LN() в паре с функцией возведения экспоненты в степень EXP()
Привожу пример для postgresql, но должно работать и в других СУБД:
То есть от каждого значения в некотором поле field таблицы tab берётся натуральный логарифм, затем считается сумма этих логарифмов и затем экспонента возводится в степень, равную этой сумме.
Вот так мы от суммы переходим к произведению при помощи одного простого SQL запроса.
Kotlin, Java, Spring, Spring Boot, Spring Data, SQL, PostgreSQL, Oracle, H2, Linux, Hibernate, Collections, Stream API, многопоточность, чат-боты, нейросети, файлы, devops, Docker, Nginx, Apache, maven, gradle, JUnit, YouTube, новости, руководство, ООП, алгоритмы, головоломки, rest, GraphQL, Excel, XML, json, yaml.
30.11.2022 15:13
И тут на вход пришло отрицательное число
11.12.2023 22:13 Никита Вячеславович К.
спасибо, пригодилось