MySQL: ЗАКАЗАТЬ по stat / age? - PullRequest
       14

MySQL: ЗАКАЗАТЬ по stat / age?

0 голосов
/ 08 января 2010

В моей таблице продуктов есть поле int , которое называется product_stat, которое увеличивается каждый раз, когда просматривается продукт. У меня также есть поле date с именем product_date_added.

Чтобы рассчитать среднее число посещений в день, которое получает продукт, вам нужно рассчитать, сколько дней продукт просуществовал, используя текущую дату и дату добавления продукта. Затем разделите статистику продукта на количество дней, в течение которых оно существовало, чтобы получить среднее число посещений в день.

ОК, но я хочу выбрать несколько продуктов и заказать их за посещений в день DESC

Как я могу это сделать?

Спасибо !!!

Ответы [ 2 ]

5 голосов
/ 08 января 2010

Вы захотите что-то вроде этого:

SELECT product_name, 
product_stat / datediff(now(), product_date_added) as 'VisitPerDay'
FROM product
ORDER by VisitPerDay DESC
5 голосов
/ 08 января 2010

Примерно так должно получиться, используя DATEDIFF , чтобы получить разницу между двумя датами, а затем разделив столбец product_stat на эту разницу.

SELECT 
    p.*, 
    p.product_stat/DATEDIFF(CURDATE(),p.product_date_added) as visits_per_day
FROM products p
ORDER BY visits_per_day DESC

Хотя обратите внимание, что DATEDIFF появился только с MySQL 4.1.1. Если вы используете более раннюю версию, вы должны вместо этого сделать «TO_DAYS(CURDATE()) - TO_DAYS(p.product_date_added)».

...