Mysql SQL:对行进行计数和分组
第1、3和5行是相同的。我想做一个计数,将它们分组在一起,同时添加一个带有count值的列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
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