java - 我将如何更改此代码以使数据组正确?

标签 java mysql jdbc jtable

这是我的代码,它主要完成其工作,但它没有像我告诉它的那样使用 SQL 语句进行分组。另外,我想知道如何制作一个自定义列,该列可以自行编号,以便顶部为“1”,并从那里向下编号。

btnLeaderBoardUpdate.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            String sql3 ="Select Name, Kills from honscores group by Name, Kills order by Kills DESC";
            ResultSet rs;
            try {
                st = conn.prepareStatement(sql3);
                rs = st.executeQuery();
                table_2.setModel(DbUtils.resultSetToTableModel(rs));

            } catch(Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }

        }
    });

这是输出:(我想在当前两列之前添加一列,称为排名,并从 1 开始编号)

Name           Kills

Raknath        20

AceFire6       15

AceFire6       12

AceFire6       10

Raknath        9

Q22            7

Q22            5

最佳答案

对于您的第一期,请参阅下文。

简短回答
请改用此语句:

Select Name, sum(Kills) from honscores group by Name order by Kills DESC

长答案
您不想按击杀次数分组,而只想按名称分组,并希望聚合结果。

假设您有以下数据:

AceFire6  2
AceFire6  2
AceFire6  1
AceFire6  3
Raknath   1
Raknath   1

并使用您的语句,数据库会将 kills 值为 2AceFire6 的所有值分组,的所有值>AceFire6kills 值为 1 等,然后选择击杀数量。

所以最后,你会得到这样的结果:

AceFire6  3
AceFire6  2
AceFire6  1
Raknath   1

你想要的是总结击杀数,无论这个人每场比赛有多少人——我猜——。

对于您的第二个问题(行数),请参阅 this另一个问题的回答。

编辑:
好吧,类似这样的东西应该可以工作(不能保证,我没有测试该声明):

SELECT @rn:=@rn+1 AS rank, Name, kills
FROM (
  Select Name, sum(Kills) as kills from honscores group by Name order by Kills DESC
) t1, (SELECT @rn:=0) t2;

快乐的 FPS-ing...:)

关于java - 我将如何更改此代码以使数据组正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8201308/

相关文章:

java - Morphia/Java新版本中如何传入用户名和密码?

java - 执行 com.google.appengine :appengine-maven-plugin:1. 9.4 时缺少必需的类

php mysql+ 注意 : Array to string conversion in C

php - Mysql插入编码问题

java - WildFly 18.0.1 JDBC 驱动程序 : Internal error (newValue is null)

java - SpringBoot + RabbitMQ 抛出错误 : java.net.ConnectException: Connection refused

java - 如何根据Gson中的key直接获取json中的值

javascript - MySQL IN 仅返回数组中第一项的结果

java - 将图像插入数据库

java - 如何从 Mac 终端运行 JDBC 代码?