按名称分组时,将sqlite数据组合到第二个表中

时间:2017-04-01 11:45:44

标签: sqlite

我有一个数据库,它是涉及基本游戏的python脚本的输出。当代码保存到数据库时,它会将其保存到名为points的表中,其中包含数据:name,account_name,time,score。我想要的是,当按名称排序时,数据被保存到第二个表中,然后我将对account_name执行相同的操作。一些要点表:

name |account_name | time | score oliver |Oliver | 10:29:14-01:04:2017 | 250 oliver |Oliver | 10:29:20-01:04:2017 | 500 dave |Oliver | 10:29:34-01:04:2017 | 250

我想要的是将数据分类到名为name的表中,其中对所有具有相同名称的记录进行总计分数,并且列跟踪已合并的条目数(在这种情况下,它将等于玩过的游戏数量)。例如:

name  | totalpoints | totalgames
oliver| 750         | 2
dave  | 250         | 1

我将使用此格式对account_name执行相同操作。我找到了有关如何对数据进行分组和求和而不是第二个表的信息。提前谢谢。

1 个答案:

答案 0 :(得分:0)

首先,通过以下方式创建表格:

CREATE TABLE `stats` (
    `name`  TEXT PRIMARY KEY ON CONFLICT REPLACE,
    `totalpoints`   INTEGER,
    `totalgames`    INTEGER
);

然后使用:

插入表格
INSERT INTO stats 
SELECT games.name, SUM(games.score) AS totalpoints, COUNT(*) AS totalgames
FROM games
GROUP BY games.name