获得分组计数,但仍显示mysql中的所有记录

我在MySQL中有一个竞赛结果表,每个车手都有一个行条目,其中包含一些通用数据-日期,位置,种族,组,还有唯一数据,例如rider_id,完成时间,位置等。试图达到的目的是在该行中增加一列,以计算每组赛车手的数量。我可以轻松显示每个日期/种族/组的计数,但是我仍然必须返回每个组中的所有行

产生我需要的计数很简单..仍然可以显示所有单个记录。

SELECT 
    date,race,grade,rider_id,position
    COUNT(*)  AS participants
FROM
    wpsa_results
GROUP BY date,grade
This 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
yanghf0728 回答:获得分组计数,但仍显示mysql中的所有记录

将计数放入子查询

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.position
FROM wpsa_results w
join (select w.date,count(*) as cnt group by w.date,w.grade) w2
        on w2.date = w.date and w2.race = w.race and w2.grade = w.grade
本文链接:https://www.f2er.com/3160788.html

大家都在问