您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關MYSQL中SQL如何分組的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
在mysql中沒有提供分組統計函數,但mysql中變量使用非常靈活,在sql中可以靈活使用變量,這給mysql實現分組的方式帶來很大方便,因此在
mysql實現一個分組統計的功能也并不難以實現,且理解起來還比較容易,比如我們提供一下的數據,用來描述,查詢出的關鍵詞的詞頻數,然后根據關鍵詞的
類型,分組統計組內詞頻出現次數最后的前三挑數據
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 '關鍵詞id',
`cnt` int(11) NOT NULL COMMENT '關鍵詞頻次',
`n` varchar(10) DEFAULT NULL,
`keyword` varchar(90) DEFAULT NULL COMMENT '關鍵詞名稱',
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','知識產權');
INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (13,1,49258,5,'n','科技創新');
INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (1,1,44177,19,'te','技術');
INSERT INTO dwsurvey.policy_keywords_rel (id,content_id,keyword_id,cnt,n,keyword)
VALUES (4,1,42982,3,'te','行業標準');
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中可以查詢出,組內詞頻數據排名,且相同詞頻的數據排名相同
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
感謝各位的閱讀!關于“MYSQL中SQL如何分組”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。