कभी-कभी आप MySQL में आवृत्ति या गणना से दशमलव की गणना करना चाह सकते हैं। उदाहरण के लिए, ग्राहकों को कुल बिक्री के बजाय खरीद या ऑर्डर की संख्या के आधार पर रैंक करना
आवृत्ति से दशमलव की गणना करें
इसके लिए अभी तक कोई कार्य नहीं हैं। इसे करने के लिए तैयार प्रश्न है।
उदाहरण के लिए, आपके पास एक टेबल है आदेश जिसमें प्रत्येक उपयोगकर्ता के लिए सभी उत्पाद ऑर्डर शामिल हैं। आप आदेशों की आवृत्ति से दशमलव की गणना करना चाहते हैं।
order +------+--------------+-------------+ | user_id | product | sales | +-----------+------------+----------+ | 1 | Soap | 10 | | 4 | Perfume | 100 | | 1 | Noodles | 20 | | 4 | Soap | 10 | | 1 | Glue | 20 | | 3 | Deo | 200 | +-----------+------------+----------+
deciles +-----------+----------+---------+---------------+ | user_id | total | rank | decile | +-----------+----------+---------+---------------+ | 1 | 3 | 1 | 10 | | 4 | 2 | 2 | 7 | | 3 | 1 | 3 | 3 | +-----------+----------+---------+---------------+
यहां एक क्वेरी है जिसका उपयोग आप आवृत्ति से दशमलव की गणना करने के लिए कर सकते हैं या MySQL में गणना कर सकते हैं। बस कॉलम - user_id, बिक्री और तालिका - ऑर्डर को बदलें। यह प्रत्येक उपयोगकर्ता के लिए आदेशों की संख्या की गणना करता है। फिर यह उन्हें आदेशों की संख्या के आधार पर रैंक करता है। अंत में, यह रैंक का उपयोग करके दशमलव की गणना करता है।
select user_id,total,rank,round(10*(cnt-rank+1)/cnt,0) as decile from (SELECT user_id,total,@curRank := @curRank + 1 AS rank FROM (select user_id,count(sales) as total from `order` group by user_id) p, (SELECT @curRank := 0) r ORDER BY total desc ) as dt,(select count(distinct user_id) as cnt from `order`) as ct
यदि आपके पास तालिका में प्रत्येक उपयोगकर्ता के लिए पहले से ही आदेशों की संख्या है और आवृत्ति या गणना से दशमलव की गणना करने के लिए सीधे तालिका का उपयोग करना चाहते हैं, तो यहां एक प्रश्न है