简体   繁体   English

如何获得每组concat字段的总数?

[英]How to get total count of each group concat fields?

I have one table called 'activity_data' 我有一个名为'activity_data'

table contain following fields 表包含以下字段

id int(11),
sports_name varchar(20),
activity_date datetime

information of activity_data table activity_data表的信息

id         sports_name      activity_date
1          Cricket          2015-05-12
2          Football         2015-05-12 
3          Cricket          2015-06-10    
4          Basketball       2015-06-08  
5          Khokho           2015-06-02 
6          Kubbdi           2015-06-04
7          Cricket          2015-05-12
8          Kubbdi           2015-05-12  
9          Cricket          2015-06-09   
10         Football         2015-06-03

now I'm execute following queries 现在我执行以下查询

SELECT GROUP_CONCAT(id) id ,GROUP_CONCAT(DISTINCT(sports_name)) sports_name,activity_date FROM filter_activity_data WHERE activity_date BETWEEN '2015-05-12' AND '2015-06-04' GROUP BY activity_date ORDER BY activity_date ASC

while executing this:output is getting like this 执行此操作时:输出就是这样的

id         sports_name                activity_date
1,2,7,8    Cricket,Football,Kubbdi    2015-05-12
5          Khokho                     2015-06-02 
10         Football                   2015-06-03    
6          Kubbdi                     2015-06-04  

I want to get output total count of each GROUP_CONCAT sports_name . 我想得到每个GROUP_CONCAT sports_name输出总数。 expected out put like this: 预计会这样:

id         sports_name                activity_date
2,1,1      Cricket,Football,Kubbdi    2015-05-12
1          Khokho                     2015-06-02 
1          Football                   2015-06-03    
1          Kubbdi                     2015-06-04  

How to achieve this goal ? 如何实现这一目标?

Hey used following query it might help you 嘿使用以下查询它可能会帮助你

select GROUP_CONCAT(t.name1) as name2 , GROUP_CONCAT(t.count) as counts , t.activity_date from 
(SELECT GROUP_CONCAT(id) id ,GROUP_CONCAT(DISTINCT(sports_name)) as name1 , count(*) as count , sports_name,activity_date FROM activity_data WHERE activity_date BETWEEN '2015-05-12' AND '2015-06-04' GROUP BY activity_date, sports_name ORDER BY activity_date ASC) as t 
group by t.activity_date

this query gives you exact result. 此查询为您提供准确的结果。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM