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

Oblicz decyla z częstotliwości w MySQL

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

Oblicz Decile z częstotliwości

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 częstotliwości zamówień.

zamówienie+------+--------------+-------------+| identyfikator_użytkownika | produkt | sprzedaż |+-----------+------------+----------+| 1 | Mydło | 10 || 4 | Perfumy | 100 || 1 | Makaron | 20 || 4 | Mydło | 10 || 1 | Klej | 20 || 3 | Deo | 200 |+---------------+------------+----------+
decyle+-----------+----------+------------+-------------- --+| identyfikator_użytkownika | łącznie | pozycja | decyl |+---------------+----------+---------+--------------- -+| 1 | 3 | 1 | 10 || 4 | 2 | 2 | 7 || 3 | 1 | 3 | 3 |+-----------+----------+---------+--------------- -+

Oto zapytanie, którego możesz użyć do obliczenia decyla na podstawie częstotliwości lub liczby w MySQL. Wystarczy wymienić kolumny – user_id, sales oraz table – order. Zlicza ilość zamówień dla każdego użytkownika. Następnie klasyfikuje je według liczby zamówień. Na koniec oblicza decyla na podstawie rangi.

wybierz identyfikator_użytkownika  ,total,rank,round(10*(cnt-rank+1)/cnt,0) jako decyl z (SELECT user_id,total,@curRank :=@curRank + 1 AS rankFROM (wybierz user_id  ,hrabia(sprzedaż  ) jako całość z `zamówienia  ` grupuj według identyfikator_użytkownika  )p, (SELECT @curRank :=0) rORDER BY total desc ) as dt,(select count(distinct user_id  ) jako cnt z`zamówienie  `) jako ct

Jeśli masz już liczbę zamówień dla każdego użytkownika w tabeli i chcesz bezpośrednio użyć tabeli do obliczenia decyla z częstotliwości lub liczby, 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. Wskazówki dotyczące migracji z HAProxy do ProxySQL

  2. Kiedy zamykać kursory za pomocą MySQLdb

  3. PHP do przechowywania obrazów w MySQL czy nie?

  4. 4 przydatne narzędzia wiersza poleceń do monitorowania wydajności MySQL w systemie Linux

  5. Ponowne podporządkowanie uszkodzonego serwera MySQL Master w konfiguracji replikacji półsynchronicznej