Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में पुनरावर्ती से दशमलव की गणना करें

कभी-कभी आप MySQL के आधार पर पुनरावृत्ति से दशमलव की गणना करना चाह सकते हैं। उदाहरण के लिए, ग्राहकों को कुल बिक्री के आधार पर खरीद या ऑर्डर की पुनरावृत्ति के आधार पर रैंक करने के लिए।

रीसेंसी से Decile की गणना करें

यह उन लोगों के लिए विशेष ऑफ़र बनाने में मदद करता है जिन्होंने हाल ही में आपकी वेबसाइट पर कुछ खरीदा है। इसके लिए अभी तक कोई कार्य नहीं हैं। इसे करने के लिए तैयार प्रश्न है।

उदाहरण के लिए, आपके पास एक टेबल है आदेश जिसमें प्रत्येक उपयोगकर्ता के लिए सभी उत्पाद ऑर्डर शामिल हैं। आप आदेशों की पुनरावृत्ति से दशमलव की गणना करना चाहते हैं।

order
+-----------+------------+------------------+
|  user_id  |   product  |   purchase_date  |
+-----------+------------+------------------+
|     1     |     Soap   |     2013-11-20   |
|     4     |   Perfume  |     2013-07-02   |
|     1     |   Noodles  |     2013-10-20   |
|     4     |     Soap   |     2013-11-11   |
|     1     |    Glue    |     2013-09-12   |
|     3     |     Deo    |     2013-10-20   |
+-----------+------------+------------------+
deciles
+-----------+----------------+---------+---------------+
|  user_id  |   latest       |  rank   |     decile    |
+-----------+----------------+---------+---------------+
|     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 और टेबल - ऑर्डर। यह प्रत्येक उपयोगकर्ता को नवीनतम खरीद तिथि प्राप्त करता है। फिर यह उन्हें खरीद की नवीनतम ओवर डेट पर रैंक करता है। अंत में, यह रैंक का उपयोग करके दशमलव की गणना करता है।

select user_id,latest,rank,round(10*(cnt-rank+1)/cnt,0) as decile from   
(SELECT  user_id,latest,@curRank := @curRank + 1 AS rank
FROM      (select user_id,max(purchase_date) as latest from `order` group by user_id)
p, (SELECT @curRank := 0) r
ORDER BY  latest desc ) as dt,(select count(distinct user_id) as cnt from
`order`) as 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. DAYOFWEEK () उदाहरण – MySQL

  2. MySQL रिमोट एक्सेस के लिए एक SSH टनल बनाएं

  3. MySQL ऑर्डर एक नंबर से, नल अंतिम

  4. वीपीएन विकल्प के रूप में एसएसएच टनलिंग का उपयोग करना

  5. MySQL प्रदर्शन:लंबी क्वेरी की पहचान करना