Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Oblicz decyla na podstawie aktualności w MySQL

Czasami możesz chcieć obliczyć decyla na podstawie aktualności w MySQL. Np. aby uszeregować klientów na podstawie ostatnich zakupów lub zamówień zamiast na podstawie łącznej sprzedaży.

Oblicz Decile z ostatnich lat

Pomaga to tworzyć specjalne oferty dla osób, które niedawno kupiły coś w Twojej witrynie. Nie ma jeszcze do tego funkcji. Oto gotowe zapytanie, aby to zrobić.

Np. Masz stół zamówienia który zawiera wszystkie zamówienia produktów dla każdego użytkownika. Chcesz obliczyć decyla na podstawie ostatnich zamówień.

zamówienie+-----------+-------------+----------------------+| identyfikator_użytkownika | produkt | data_zakupu |+-----------+-------------+----------------------+| 1 | Mydło | 2013-11-20 || 4 | Perfumy | 2013-07-02 || 1 | Makaron | 2013-10-20 || 4 | Mydło | 2013-11-11 || 1 | Klej | 2013-09-12 || 3 | Deo | 2013-10-20 |+-----------+--------------+----------------------- +
decyle+-----------+----------------+------------+----------- --------+| identyfikator_użytkownika | najnowszy | pozycja | decyl |+-----------+----------------+---------+------------ -------+| 1 | 2013-11-20 | 1 | 100 || 4 | 2013-11-11 | 2 | 66,67 || 3 | 2013-10-20 | 3 | 33,33 |+-----------+----------------+---------+--------- -------+

Oto zapytanie, którego możesz użyć do obliczenia decyla na podstawie aktualności w MySQL. Wystarczy zamienić kolumny – user_id, purchase_date i table – order. Pobiera najnowszą datę zakupu każdego użytkownika. Następnie klasyfikuje je według najpóźniejszej daty zakupu. Na koniec oblicza decyla na podstawie rangi.

wybierz identyfikator_użytkownika  ,latest,rank,round(10*(cnt-rank+1)/cnt,0) jako decile z (SELECT user_id,latest,@curRank :=@curRank + 1 AS rankFROM (wybierz user_id  ,max(data_zakupu  ) najpóźniej z `zamówienia  ` grupuj według identyfikator_użytkownika  )p, (SELECT @curRank :=0) rORDER BY najnowszy opis ) jako dt,(select count(distinct user_id  ) jako cnt z`zamówienie  `) jako ct

Jeśli masz już ostatnią datę zakupu dla każdego użytkownika w tabeli i chcesz bezpośrednio użyć tabeli do obliczenia decyla z ostatnich zakupów, oto zapytanie

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć bazę danych w MySQL

  2. Zezwalaj na wszystkie połączenia zdalne, MySQL

  3. mysql po wstawieniu wyzwalacza, który aktualizuje kolumnę innej tabeli

  4. Instalacja i konfiguracja MySQL na Ubuntu 20.04

  5. MySQL – Napraw błąd – Błąd bazy danych WordPress Zduplikowany wpis dla klucza PRIMARY dla zapytania INSERT INTO wp_options