{{format('0')}} {{format('599')}} {{format('1359')}}

MySQL实现查询结果带行号的方法 [ 技术杂谈 ]

九叶的小窝 文章 正文

As Long As You Love Me.
分享

九叶

{{nature("2022-04-14 11:55:23")}}更新

1. 前言

由于业务变动 PDF报告分析的人口学问题需要变动

为了不修改原代码结构的前提下 需要用SQL直接返回PO类 FinishCountPo

/**
 * Created by matioyoshitoki on 2019/6/10.
 */
public class FinishCountPo {
    private String tag;
    private String personCount ;
    private String basicType;
    private String displayNo;
    /* get set 方法省略 */ 
    private getXxx(); 
    private setXxx(X xxx); 
    ...
}

人口学统计数据格式.jpg

debug获得的数据里data 就是FinishCountPo

 SELECT tce.Gender as tag, COUNT(0) as personCount 
 FROM TCompanyEmployee tce 
 WHERE tce.GroupId = '2022031000002'
 GROUP BY tag

查询结果:

tag personCount
4
6

然后没有 displayNo 属性 突然想到可以用行号来解决 到时候配合 ORDER BY函数简直完美!

2. 解决

使用mysql定义变量 查询结果 每行+1就可以解决

SELECT
    ( @rowNum := @rowNum + 1 ) AS displayNo,
    tag,
    personCount 
FROM
    ( 
        SELECT Gender AS tag, COUNT( 0 ) AS personCount 
        FROM TCompanyEmployee tce 
        WHERE GroupId = '2022031000002' 
        GROUP BY tag 
        ORDER BY personCount DESC 
    ) AS temp,
    (
        SELECT ( @rowNum := 0 )
    ) AS rowNum

查询结果:

displayNo tag personCount
1 6
2 4

问题解决啦!!

评论 0
0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}
TOP 2
Minecraft | [1.12.2] 核电工艺模拟器 1.2.25 —— 汉化版

{{nature('2021-12-07 15:29:00')}} {{format('2414')}}人已阅读

TOP 3
SSM搭建Spring单元测试环境

{{nature('2021-01-31 20:01:00')}} {{format('1040')}}人已阅读

TOP 4
dispatcher-servlet.xml文件配置模板

{{nature('2020-12-11 21:17:00')}} {{format('954')}}人已阅读

TOP 5
Windows平台Nacos启动报错无法创建Bean实例

{{nature('2021-04-22 15:16:00')}} {{format('935')}}人已阅读

目录

标签云

MySQL

一言

# {{hitokoto.data.from || '来自'}} #
{{hitokoto.data.hitokoto || '内容'}}
作者:{{hitokoto.data.from_who || '作者'}}
自定义UI
配色方案

侧边栏