首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取分组计数,但仍显示mysql中的所有记录

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

Stack Overflow用户
提问于 2019-11-05 17:37:23
回答 1查看 27关注 0票数 0

我在MySQL中有一个比赛结果表,每个车手将有一个行条目与一些常见的数据-日期,位置,比赛,组,但也有独特的数据,如rider_id,完成时间,位置等。我试图实现的是添加一个列到该行统计每个组的参赛者数量。我可以很容易地显示每个日期/比赛/组的计数,但我仍然必须返回每个组中的所有行

产生我需要的计数是微不足道的。没有那么多内容来仍然显示所有单独的记录。

代码语言:javascript
复制
SELECT 
    date, race, grade, rider_id, position
    COUNT(*)  AS participants
FROM
    wpsa_results
GROUP BY date, race, grade
代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2019-11-05 17:43:13

将计数放入子查询中

代码语言:javascript
复制
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;

或者创建一个虚拟表并连接

代码语言:javascript
复制
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.grade
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58708407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档