我在MySQL中有一个比赛结果表,每个车手将有一个行条目与一些常见的数据-日期,位置,比赛,组,但也有独特的数据,如rider_id,完成时间,位置等。我试图实现的是添加一个列到该行统计每个组的参赛者数量。我可以很容易地显示每个日期/比赛/组的计数,但我仍然必须返回每个组中的所有行
产生我需要的计数是微不足道的。没有那么多内容来仍然显示所有单独的记录。
SELECT
date, race, grade, rider_id, position
COUNT(*) AS participants
FROM
wpsa_results
GROUP BY date, race, gradeThis is the result, but I need ALL 4 records from A, ALL 8 from B etc showing each rider
Date Race Grade RiderID Position Count
2019-11-03 GSR A 5755 1 4
2019-11-03 GSR B 4697 1 8
2019-11-03 GSR C 7661 1 10
2019-11-03 GSR D 4743 1 8
2019-11-03 GSR E 2400 1 6
2019-11-03 GSR F 4295 1 9发布于 2019-11-05 17:43:13
将计数放入子查询中
SELECT
w.date, w.race, w.grade, w.rider_id, w.position,
(select COUNT(*) from wpsa_results w2 where w2.date = w.date and w2.race = w.race and w2.grade = w.grade) AS participants
FROM wpsa_results w;或者创建一个虚拟表并连接
SELECT
w.date, w.race, w.grade, w.rider_id, w.position
FROM wpsa_results w
join (select w.date, w.race, w.grade, count(*) as cnt group by w.date, w.race, w.grade) w2
on w2.date = w.date and w2.race = w.race and w2.grade = w.gradehttps://stackoverflow.com/questions/58708407
复制相似问题