加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL中SQL怎样分组

发布时间:2022-01-11 18:12:25 所属栏目: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如何分组”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读