我的存储过程中有以下内容,可以从具有中立派系的玩家名称中检索唯一记录:
SELECT
COUNT(DISTINCT Name) into @neutcount
FROM
dim5players
WHERE
Faction ='Neutral';
UPDATE dim5stats
SET Value = @neutcount
WHERE
Function = 'Neutral';
这工作发现和花花公子。问题是我也有一个名为 Date 的字段。
我想从唯一的“名称”记录中选择要在计数中列出的记录的最新日期,而不是随机记录。
这是一个历史表,它记录了记录的每日变化,其中名称可以出现多次。我只需要用他们的最新记录来计算具有中立派系的最新记录。有些人不时更换派系。我只关心他们最新的派系。
这是结构:
CREATE TABLE `dim5players` (
`id` CHAR(64) NOT NULL,
`name` VARCHAR(45) NOT NULL,
`rank_name` VARCHAR(20) NULL DEFAULT NULL,
`level` INT(11) NOT NULL,
`defender_rank_id` INT(11) NULL DEFAULT NULL,
`Faction` VARCHAR(15) NOT NULL,
`Organization` VARCHAR(100) NULL DEFAULT NULL,
`Date` DATE NOT NULL,
`Updated` BIT(1) NOT NULL,
UNIQUE INDEX `id_UNIQUE` (`id`) USING HASH,
INDEX `name_index` (`name`) USING HASH,
INDEX `date_index` (`Date`) USING HASH,
INDEX `updated_index` (`Updated`) USING HASH,
INDEX `faction_index` (`Faction`) USING HASH
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;