Что у меня есть:
У меня есть таблица visits
, которая имеет 2 столбца userid
и ref_url
, где userid
- это идентификатор пользователя, а ref_url
соответствует URL-адресу, с которого ссылался userid
. Пустые места в столбце ref_url
соответствуют прямым посещениям и не учитываются.
Таблица: vists
-------------------------------------
| userid | ref_url |
-------------------------------------
| 1 | |
| 1 | https://demosite.com |
| 1 | https://demosite2.com |
| 1 | |
| 1 | https://demosite3.com |
| 1 | |
-------------------------------------
Чего я ожидаю достичь:
Я хочу создать запрос, который будет подсчитывать общее количество ref_url
вхождений для определенного userid
, исключая пустые пробелы (в поле ref_url), ограничивать счет в пределах 100 и умножать его на 0,5 и представлять результат как DECIMAL для столбца псевдонимов estimated value
.
------------------------------------
| userid | estimated value |
------------------------------------
| 1 | 1.50 |
------------------------------------
Мой запрос:
SELECT userid,
CAST(((
SELECT COUNT(NULLIF(TRIM(ref_url), ''))
FROM visits
LIMIT 0,100
) * 0.5) AS DECIMAL(12,2)) AS 'estimated value'
FROM visits
GROUP BY userid
Приведенный выше запрос вызывает синтаксическую ошибку:
У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '2))
Запрос работает, когда DECIMAL(12,2)
заменяется на UNSIGNED
.
Запрос при использовании с DECIMAL (12,2) выводит с Adminer, но приводит к
[1329] Нет данных - ноль строк выбирается, выбирается или обрабатывается
при попытке непосредственно на Мариадб. Есть ли вероятность проблем с разрешением?