我有一个包含 11 列的田径表,我创建了一个 SQL 查询,该查询按特定事件、年龄组和性别对表进行排序,取出所有重复项并保留结果最好的那个。对于某些事件,它还区分有风读数的结果和没有风读数的结果,以及风是否超过一定速度。
@export on;
@export set filename="/home/filename.csv" CsvColumnDelimiter=",";
select * from Results2015;
SELECT resu.Result,
resu.Wind,
resu.`Full Name`,
resu.Province,
resu.BirthDate,
resu.Position,
resu.Location,
resu.Date
FROM Results2015 resu
JOIN (
SELECT MIN(Result) BestResult,
Wind, `Full Name`, Gender,
Event, Agegroup
FROM Results2015
GROUP BY `Full Name`, Gender, Event, Agegroup
) best
ON resu.Result = best.BestResult
AND resu.Wind = best.Wind
AND resu.`Full Name` = best.`Full Name`
AND resu.Gender = best.Gender
AND resu.Event = best.Event
AND resu.Agegroup = best.Agegroup
WHERE resu.Event = '100m'
AND resu.Gender = 'F'
AND resu.Agegroup = 'Junior'
AND resu.Wind <> ''
AND resu.Wind <= 2
ORDER BY resu.Result asc;
它工作得很好,但我注意到它丢失了很多结果,包括风读数,我不知道为什么。这是我使用的表格示例
Result Wind Full Name Province BirthDate Position Location Date Event Gender Agegroup
12.78 -3.6 Name 4 WPA D.o.B 6 Bellville 3-Feb 100m F Junior
12.87 -3.6 Name 2 WPA D.o.B 7 Bellville 8-Feb 100m M Youth
12.64 -0.8 Name 3 WPA D.o.B 2 Bellville 8-Feb 100m F Junior
12.02 -0.8 Name 4 WPA D.o.B 1 Bellville 8-Feb 100m F Junior
12.84 -0.8 Name 5 WPA D.o.B 3 Bellville 8-Feb 100m F Junior
13.07 -0.8 Name 6 WPA D.o.B 4 Bellville 8-Feb 100m F Junior
13.23 -0.8 Name 7 WPA D.o.B 5 Bellville 8-Feb 100m F Junior
13.71 -4.3 Name 8 WPA D.o.B 1 Bellville 8-Feb 100m F Junior
13.85 -4.3 Name 9 WPA D.o.B 2 Bellville 8-Feb 100m F Junior
14.33 -4.3 Name 10 WPA D.o.B 3 Bellville 8-Feb 100m F Junior
14.69 Name 11 WPA D.o.B 4 Bellville 2-Feb 100m F Junior
13.11 -2.9 Name 12 WPA D.o.B 1 Bellville 8-Feb 100m F Sub-Youth
13.43 -2.9 Name 13 WPA D.o.B 2 Bellville 8-Feb 100m F Sub-Youth
13.53 -2.9 Name 12 WPA D.o.B 3 Bellville 14-Feb 100m F Sub-Youth
13.60 -1.5 Name 15 WPA D.o.B 1 Bellville 14-Feb 100m F Sub-Youth
由于某种原因,它完全跳过了输出中的名称 4。Name 4 的数据与其他条目完全相同,它会显示这些,但它完全排除了 Name 4 以及其他条目,但据我所知,只有那些有风读物的条目。
如果我将 Wind 添加到 GROUP BY 部分
GROUP BY `Full Name`, Gender, Event, Agegroup, Wind
它确实显示了所有正确的结果,但是我想避免很多重复。
知道发生了什么吗?
我对所有 SQL 查询都使用 DbVisualizer Pro
SQLFiddle 示例在这里http://www.sqlfiddle.com/#!2/f8958/1 问题在于 Tamza Bay 没有显示在输出中