У меня есть красноречивый запрос, и я хочу привести поле к типу "float". Это агрегированное значение, и в настоящий момент оно возвращается в виде строки, вот пример запроса:
$productStats->selectRaw("
product.id,
TRIM(product.name) AS item_name,
SUM(IF(order.order_paid_date BETWEEN '" . $start->timestamp . "' AND '" . $end->timestamp . "' AND order.order_type = 'order' AND (open_count > 0 OR click_count > 0), order_item.total_price, 0)) as revenue,
COALESCE(CAST(SUM(IF(order.updated_date BETWEEN '" . $start->timestamp . "' AND '" . $end->timestamp . "' AND order.order_type = 'order' AND (open_count > 0 OR click_count > 0), 1, 0)) as SIGNED), 0) / CAST(SUM(IF(order.updated_date BETWEEN '" . $start->timestamp . "' AND '" . $end->timestamp . "' AND order.order_type = 'order', 1, 0)) as SIGNED) AS change_rate
");
revenue
и change_rate
в настоящее время возвращаются как строки, но я бы хотел, чтобы они были плавающими. Они являются вычисленными значениями, поэтому я не могу добавить в модель приведение атрибутов.
РЕДАКТИРОВАТЬ: я удалил DECIMAL из моего запроса за комментарий.