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