@EVOSandru6

Почему запрос postgres выдает на выходе массив?

Добрый день,

Есть 3 связанных последовательно таблички:

categories ( id, name)
products ( id, category_id, name )
tarifs (id, product_id, price, percent)

Необходимо , имея id категории, найти наименьший тариф среди всех комнат, в случае если у тарифа есть процент в поле (percent не NULL), то необходимо выполнить преобразование значения. Сделал набросок, но на выходе имею массив почему - то. Дажк если ставлю Distinct, то значение на выходе - не минимальный тариф из набора:

SELECT
				DISTINCT
					CASE
						WHEN percent IS NOT NULL
							THEN
								MIN(price) +
								(MIN(price) * percent / 100)
						ELSE
							MIN(price)
					END
						as min_price
            FROM
                        tarifs
            LEFT JOIN
                        products
            ON
               	 		tarifs.product_id = products.id
			LEFT JOIN
                        categories
            ON
               	 		products.category_id = categories.id
			WHERE
						categories.id = :id
			GROUP BY
						tarifs.id
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Затем вы делаете группировку, когда вам нужен order by + limit 1?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы