Я запускаю тест A-B, чтобы узнать, какой стиль страницы может получить больше заказов на продукты и попытаться взвесить одну страницу как «лучше», чем другие, потому что она показывает более часто.Умножение, разделение и добавление в MYSQL
У меня есть 8 столбцов в моей базе данных MYSQL.
- Orders_Page_One
- Orders_Page_Two
- Orders_Page_Three
- Visitors_Page_One
- Visitors_Page_Two
- Visitors_Page_Three
- Total_Orders
- Total_Visitors
В настоящее время я только работаю запрос как:
$result = mysql_query("SELECT *, (Total_Orders/Total_Visitors) AS order_percent FROM orders WHERE category = clothes ORDER BY order_percent DESC LIMIT 5") or die(mysql_error());
Это работает, но
Это позволяет мне показать, какие заказы являются наиболее популярными, но не принимать во внимание, какие страницы они появляются.
Я пробовал:
$result = mysql_query("SELECT *, (Orders_Page_One/Visitors_Page_One) + (Orders_Page_Two/Visitors_Page_Two) + (Orders_Page_Three/Visitors_Page_Three) AS order_percent FROM orders WHERE category = clothes ORDER BY order_percent DESC LIMIT 5") or die(mysql_error());
Но это, кажется, не дают точных результатов.
Я также попытался
$result = mysql_query("SELECT *, ((Orders_Page_One/Visitors_Page_One) + (Orders_Page_Two/Visitors_Page_Two) + (Orders_Page_Three/Visitors_Page_Three)) AS order_percent FROM orders WHERE category = clothes ORDER BY order_percent DESC LIMIT 5") or die(mysql_error());
Но это дает ошибку синтаксиса.
Предполагая:
Orders Page One = 10 and Visitors Page One = 20
Orders Page Two = 10 and Visitors Page Two = 40
Orders Page Three = 10 and Visitors Page Three = 50
математический результат я хочу бы:
(10/20) + (10/40) + (10/50)
ИЛИ
0.5 + 0.25 + 0.20 = 0.95
Любые предложения? Я думаю, что я просто не устанавливаю математику правильно.
После более чтения я думаю, что нужно использовать несколько выбирает:
IE:
Select (orders_page_1/visitors_page_1) as order_percent_1 from orders
Select (orders_page_2/visitors_page_2) as order_percent_2 from orders
Select (orders_page_3/visitors_page_3) as order_percent_3 from orders
Select (order_percent_1 + order_percent_two + order_percent_3) as order_percent
WHERE category = clothes
ORDER BY order_percent DESC
Но не уверен, что на форматирование? Или если это сработает?
$result = mysql_query("
SELECT * FROM orders, (
SELECT (orders_page_1/visitors_page_one) AS ord1 FROM orders WHERE category = 'clothing' ORDER BY ord1 DESC LIMIT 2) AS ord_1,
(
SELECT (orders_page_2/visitors_page_two) AS ord2 FROM orders WHERE category = 'clothing' ORDER BY ord2 DESC LIMIT 2) AS ord_2,
(
SELECT (orders_page_3/visitors_page_3) AS ord3 FROM orders WHERE category = 'clothing' ORDER BY ord3 DESC LIMIT 2) AS ord_3,
ORDER BY (ord_1 +ord_2 + ord_3) DESC LIMIT 2") or die(mysql_error());
Однако это дает ошибку:
У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи 'ORDER BY (ord_1 + ord_2 + ord_3) DESC LIMIT 2' в строке 8
Можете ли вы создать SQL-скрипт для этого? –
Я не знаком с скриптом SQL – user3083472
Нормализации никому? И мы ограничены работой только с вещами, с которыми вы «знакомы»? !?!? ;-) – Strawberry