• ADADADADAD

    MYSQL中SQL如何分组[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:17:07

    作者:文/会员上传

    简介:

    在mysql中没有提供分组统计函数,但mysql中变量使用非常灵活,在sql中可以灵活使用变量,这给mysql实现分组的方式带来很大方便,因此在mysql实现一个分组统计的功能也并不难以实现

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    在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如何分组.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlsql