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

MySql:एक कॉलम में शब्दों के आने की संख्या की गणना करें

यहाँ केवल एक प्रश्न का उपयोग करके एक समाधान दिया गया है:

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. MyISAM रिकॉर्ड संरचना को समझना

  2. MySQL डेटटाइम स्टैम्प को जावास्क्रिप्ट के दिनांक प्रारूप में बदलें

  3. अजाक्स के साथ Jquery डेटपिकर काम नहीं कर रहा है

  4. क्या MySQL को मूल रूप से MariaDB से बदला जा सकता है या क्या इस मामले में कुछ बदलना है?

  5. पीडीओ गतिशील क्वेरी बिल्डिंग