Php 个人最佳表中所有时间记录中的SQL计数记录

Php 个人最佳表中所有时间记录中的SQL计数记录,php,mysql,sql,Php,Mysql,Sql,我有一个个人最好的表,其中保存了每一条指定鱼的捕鱼重量个人最好的记录。这些属于特定的物种 到目前为止,我已经设法收集到了每种被命名的鱼的所有时间记录,按物种分组 我现在要做的是设置一个统计页面,显示各种信息,其中一个是所选渔民持有的所有时间记录的数量(计数) 我有一个选择器,您可以选择名称来显示统计数据,这很好 我似乎无法计算一个被选中的渔夫所选的所有时间记录 我尝试过嵌套Select语句,但没有得出结论。我对这东西也很陌生 这是我的起始代码和有问题的字段名 按NameFish从PB_分数组中选

我有一个个人最好的表,其中保存了每一条指定鱼的捕鱼重量个人最好的记录。这些属于特定的物种

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

我现在要做的是设置一个统计页面,显示各种信息,其中一个是所选渔民持有的所有时间记录的数量(计数)

我有一个选择器,您可以选择名称来显示统计数据,这很好

我似乎无法计算一个被选中的渔夫所选的所有时间记录

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

这是我的起始代码和有问题的字段名

按NameFish从PB_分数组中选择物种、NameFish、竞争者、MAX(Drams)
假设桌子是

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
选择Mitchell的结果应该是:-

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 fiddle:-


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

。你能建议一种代码可以列出共享记录的方式吗?我现在在“FROM PB_Score”之后添加了一段代码,以忽略任何带零的记录。其中Drams>0“有了共享记录,两者都将被计算在内。不确定这是否是您需要的。例如,您可能在表上还有一个日期,只想计算最先出现的记录权重。where子句应该在子查询中起作用,以删除权重为零的查询。