溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MYSQL中SQL如何分組

發(fā)布時間:2021-10-29 17:35:43 來源:億速云 閱讀:193 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章給大家分享的是有關(guān)MYSQL中SQL如何分組的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

     在mysql中沒有提供分組統(tǒng)計函數(shù),但mysql中變量使用非常靈活,在sql中可以靈活使用變量,這給mysql實現(xiàn)分組的方式帶來很大方便,因此在
 mysql實現(xiàn)一個分組統(tǒng)計的功能也并不難以實現(xiàn),且理解起來還比較容易,比如我們提供一下的數(shù)據(jù),用來描述,查詢出的關(guān)鍵詞的詞頻數(shù),然后根據(jù)關(guān)鍵詞的
 類型,分組統(tǒng)計組內(nèi)詞頻出現(xiàn)次數(shù)最后的前三挑數(shù)據(jù)
 CREATE TABLE `policy_keywords_rel` ( 
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID', 
  `content_id` int(11) NOT NULL COMMENT '文章id', 
  `keyword_id` int(11) NOT NULL COMMENT '關(guān)鍵詞id', 
  `cnt` int(11) NOT NULL COMMENT '關(guān)鍵詞頻次', 
  `n` varchar(10) DEFAULT NULL, 
  `keyword` varchar(90) DEFAULT NULL COMMENT '關(guān)鍵詞名稱', 
  PRIMARY KEY (`content_id`,`keyword_id`), 
  KEY `id` (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8

INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (3,1,68860,3,'te','知識產(chǎn)權(quán)');

INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (13,1,49258,5,'n','科技創(chuàng)新');

INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (1,1,44177,19,'te','技術(shù)');

INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (4,1,42982,3,'te','行業(yè)標準');

INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (10,1,7405,6,'n','市政府');


select * from policy_keywords_rel

從如下sql中可以查詢出,組內(nèi)詞頻數(shù)據(jù)排名,且相同詞頻的數(shù)據(jù)排名相同
SELECT
 T2.*
FROM
 (
  SELECT
    T.*
   ,CASE
    WHEN @MID = N and @TEMP_SCNT != SCNT THEN @ROW := @ROW + 1
    WHEN @MID = N and @TEMP_SCNT = SCNT THEN @ROW := @ROW
    ELSE @ROW := 1
    END ROWNUM
   ,@MID := N MID
   ,@TEMP_SCNT := SCNT
  FROM
   (
    SELECT
     KEYWORD_ID,
     KEYWORD,
     SUM( CNT ) as SCNT,
     N
    FROM
     POLICY_KEYWORDS_REL
    GROUP BY
     KEYWORD_ID,
     N
    ORDER BY
     N,
     SUM( CNT ) DESC
   ) AS T
 ) AS T2
WHERE
 T2.ROWNUM <= 3

感謝各位的閱讀!關(guān)于“MYSQL中SQL如何分組”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI