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

तालिका कॉलम में शब्द घटनाओं की गणना करना

@Elad Meidar, मुझे आपका प्रश्न पसंद है और मुझे एक समाधान मिला:

SELECT SUM(total_count) as total, value
FROM (

SELECT count(*) AS total_count, REPLACE(REPLACE(REPLACE(x.value,'?',''),'.',''),'!','') as value
FROM (
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.sentence, ' ', n.n), ' ', -1) value
  FROM table_name t CROSS JOIN 
(
   SELECT a.N + b.N * 10 + 1 n
     FROM 
    (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
   ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
    ORDER BY n
) n
 WHERE n.n <= 1 + (LENGTH(t.sentence) - LENGTH(REPLACE(t.sentence, ' ', '')))
 ORDER BY value

) AS x
GROUP BY x.value

) AS y
GROUP BY value

यहां पूरी तरह से काम करने वाली पहेली है:http://sqlfiddle.com/#!2/17481a/ 1

सबसे पहले हम यहां बताए गए सभी शब्दों को निकालने के लिए एक क्वेरी करते हैं। @peterm द्वारा (यदि आप संसाधित शब्दों की कुल संख्या को अनुकूलित करना चाहते हैं तो उनके निर्देशों का पालन करें)। फिर हम उसे एक उप-क्वेरी में बदल देते हैं और फिर हम COUNT और GROUP BY प्रत्येक शब्द का मान, और फिर उसके ऊपर GROUP BY . के लिए एक और क्वेरी करें समूहीकृत शब्द नहीं ऐसे मामले जहां साथ में संकेत मौजूद हो सकते हैं। यानी:हैलो =हैलो! एक REPLACE . के साथ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql INSERT के लिए mongodb अनुवाद... चुनें

  2. मैं PHP का उपयोग करके MySQL डीबी में बड़ी फाइलें कैसे सम्मिलित कर सकता हूं?

  3. Mysql AVG शून्य को अनदेखा करने के लिए

  4. पिछली पंक्ति मान से प्रतिशत वृद्धि/कमी की गणना करें

  5. mysql प्रत्येक पंक्ति में अन्य तालिका से पंक्तियों की संख्या दिखाएं