Mysql SQL:对行进行计数和分组

Mysql SQL:对行进行计数和分组,mysql,sql,count,Mysql,Sql,Count,第1、3和5行是相同的。我想做一个计数,将它们分组在一起,同时添加一个带有count值的列 id | userid | exerciseid | date | time | weight | distance | reps 1 | 24 | 1 | 2013-09-28 00:00:00 | 2321 | 231 | 121 | NULL 2 | 24 | 24 | 2013-09-28 00:0

第1、3和5行是相同的。我想做一个计数,将它们分组在一起,同时添加一个带有count值的列

id | userid | exerciseid | date                | time | weight | distance | reps
1  | 24     | 1          | 2013-09-28 00:00:00 | 2321 | 231    | 121      | NULL
2  | 24     | 24         | 2013-09-28 00:00:00 | 2321 | 231    | 121      | NULL
3  | 24     | 1          | 2013-09-28 00:00:00 | 2321 | 231    | 121      | NULL
4  | 24     | 1          | 2000-00-00 00:00:00 | NULL | 100    | NULL     | 2
5  | 24     | 1          | 2013-09-28 00:00:00 | 2321 | 231    | 121      | NULL
试试这个:

id | userid | exerciseid | date                | time | weight | distance | reps | count
1  | 24     | 1          | 2013-09-28 00:00:00 | 2321 | 231    | 121      | NULL | 3
4  | 24     | 1          | 2000-00-00 00:00:00 | NULL | 100    | NULL     | 2    | NULL
选择Count(*)作为CountM、id、userid、exerciseid、日期、时间、重量、距离、重复次数
从`练习`
其中`userid`=1和`date`
试试这个

SELECT Count(*) As CountM, id, userid, exerciseid, date, time, weight, distance, reps    
FROM `exercises`
WHERE `userid` = 1 AND `date` < now()
Group by id, userid, exerciseid, date, time, weight, distance, reps  
选择id、userid、exerciseid、日期、时间、重量、距离、重复次数、,
计数(*)作为计数
从`练习`
其中userid=1,日期
如果1,计数列是否可以为空?您可以将计数(*)替换为if(count(*)=1,NULL,count(*)作为计数
SELECT Count(*) As CountM, id, userid, exerciseid, date, time, weight, distance, reps    
FROM `exercises`
WHERE `userid` = 1 AND `date` < now()
Group by id, userid, exerciseid, date, time, weight, distance, reps  
SELECT id, userid, exerciseid, date, time, weight, distance, reps,
       count(*) as count
FROM `exercises`
WHERE userid = 1 AND date < now()
GROUP BY id, userid, exerciseid, date, time, weight, distance, reps