Mysql
 sql >> база данни >  >> RDS >> Mysql

Изчислете децил от актуалност в MySQL

Понякога може да искате да изчислите децил от актуалност в MySQL въз основа на. Например, за класиране на клиентите въз основа на скорошни покупки или поръчки вместо въз основа на общите продажби.

Изчислете децил от актуалност

Това помага за създаване на специални оферти за хора, които наскоро са купили нещо на вашия уебсайт. Все още няма функции за него. Ето готова заявка, за да го направите.

Напр. имате таблина поръчка който съдържа всички поръчки на продукти за всеки потребител. Искате да изчислите децил от скорошността на поръчките.

<предварителна>поръчка+-----------+-----------+-----------------+| потребителски_идентификатор | продукт | дата_на_купуване |+-----------+------------+------------------+| 1 | Сапун | 2013-11-20 || 4 | Парфюм | 2013-07-02 || 1 | Юфка | 2013-10-20 || 4 | Сапун | 2013-11-11 || 1 | Лепило | 2013-09-12 || 3 | Део | 2013-10-20 |+-----------+-----------+------------------ +
децили+-----------+----------------+--------+------- --------+| потребителски_идентификатор | най-новите | ранг | децил |+-----------+----------------+--------+-------- -------+| 1 | 2013-11-20 | 1 | 100 || 4 | 2013-11-11 | 2 | 66,67 || 3 | 2013-10-20 | 3 | 33,33 |+-----------+----------------+--------+-------- -------+

Ето заявка, която можете да използвате, за да изчислите децил от актуалност в MySQL. Просто заменете колоните – user_id, buy_date и table – order. Той получава най-новата дата на покупка за всеки потребител. След това ги класира по последна дата на покупка. И накрая, той изчислява децил, използвайки ранг.

изберете user_id  ,latest,rank,round(10*(cnt-rank+1)/cnt,0) като децил от (SELECT user_id,latest,@curRank :=@curRank + 1 AS rankFROM (изберете user_id  ,max(дата_на_покупка  ) най-късно от `поръчка  ` група по user_id  )p, (ИЗБЕРЕТЕ @curRank :=0) rORDER BY най-ново описание ) като dt,(изберете брой(отличен user_id)  ) като cnt от`поръчка  `) като ct

Ако вече имате последна дата на покупка за всеки потребител в таблицата и искате директно да използвате таблицата за изчисляване на децил от скорошна покупка, ето заявка

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO fetchAll групови двойки ключ-стойност в асоцииран масив

  2. Коригирайте „ГРЕШКА 1136 (21S01):Броят на колоните не съвпада с броя на стойностите на ред 2“, когато използвате инструкцията VALUES в MySQL

  3. Как да извика съхранена процедура на MySQL от PHP код?

  4. MYSQL sum() за отделни редове

  5. Как мога да активирам разширението MySQLi в PHP 7?