个人最佳表中的历史记录中保存的 SQL 计数记录


SQL Count Records Held in All-time Records from a personal best table

我有一个个人最佳表,其中包含每条命名鱼的钓鱼重量个人最佳记录。这些属于特定物种。

到目前为止,我已经设法提取了每种命名鱼的所有时间记录,按物种分组。

我现在要做的是建立一个显示各种信息的统计页面,其中一个是所选渔夫持有多少(计数)所有时间记录。

我有一个选择器,因此您可以选择名称来显示统计信息,这工作正常。

我似乎无法计算一个选定的渔民选择的历史记录。

我尝试嵌套 Select 语句,但没有结论。我对这个东西也很陌生。

这是我的起始代码,其中包含有问题的字段名称。

SELECT Specie, NameFish, Contender, MAX(Drams) FROM PB_Scores GROUP BY NameFish

假设该表是...

SPECIE - NAMEFISH - CONTENDER - DRAMS
Tench  | Barry    | Jonhson   | 234
Pike   | Glub     | Johnson   | 3456
Pike   | Blake    | Johnson   | 4567
Pike   | Blake    | Mitchell  | 4890
Pike   | Glub     | Mitchell  | 0 
Tench  | Barry    | Mitchell  | 2420

选择米切尔的结果应该是:-

2

(因为米切尔让巴里和布莱克的权重更大,所以计数是 2)。

任何帮助将不胜感激。

执行子查询以获取每个物种/鱼名称的最大权重,然后将其连接回表中,以获取拥有该物种/名称和重量的鱼的竞争者:

SELECT a.Contender, COUNT(*)
FROM PB_Scores a
INNER JOIN
(
    SELECT Specie, NameFish, MAX(Drams) AS MaxSpeciesWeight
    FROM PB_Scores
    GROUP BY Specie, NameFish
) b
ON a.Specie = b.Specie
AND a.NameFish = b.NameFish
AND a.Drams = b.MaxSpeciesWeight
GROUP BY a.Contender

SQL小提琴:-

http://www.sqlfiddle.com/#!2/966bf/1

请注意,如果两个人都钓到了相同物种、名称和体重的鱼,这可能会产生奇怪的结果。