MYSQL中SQL怎样分组
发布时间:2022-01-11 23:53:23 所属栏目:MySql教程 来源:互联网
导读:这篇文章给大家分享的是有关MYSQL中SQL如何分组的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在mysql中没有提供分组统计函数,但mysql中变量使用非常灵活,在sql中可以灵活使用变量,这给mysql实现分组的方式带来很大方便,
这篇文章给大家分享的是有关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如何分组”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧! (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |