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ń.
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