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