Mysql 按行id分组的值计数
我的数据如下所示 我想总结一下所有事件的发生次数。这应该按Id分组。因此输出应该如下所示:Mysql 按行id分组的值计数,mysql,sql,group-by,Mysql,Sql,Group By,我的数据如下所示 我想总结一下所有事件的发生次数。这应该按Id分组。因此输出应该如下所示: ID Count 1 5 2 4 我的问题是 select id, (count(Monday) + count(Tuesday) + count(Wednesday) + count(Thursday) + count(Friday) + count(Saturday) + count(Sunday)) as 'Count' from Report wh
ID Count
1 5
2 4
我的问题是
select id,
(count(Monday) + count(Tuesday) + count(Wednesday) + count(Thursday) +
count(Friday) + count(Saturday) + count(Sunday)) as 'Count'
from Report
where Monday = 'ALL'
or Tuesday = 'ALL'
or Wednesday = 'ALL'
or Thursday = 'ALL'
or Friday = 'ALL'
or Saturday = 'ALL'
or Sunday = 'ALL'
group by Id;
这个查询给我的结果是
ID Count
1 5
2 6
这对于Id 2是不正确的。第二行的Friday值为空字符串
您可以对一周中的所有天使用计数,大小写等于
all
SELECT Id, COUNT(Monday='ALL') + COUNT(Tuesday='ALL') + COUNT(Wednesday='ALL')+
COUNT(Thursday='ALL') + COUNT(Friday='ALL') + COUNT(Saturday='ALL')+
COUNT(Sunday='ALL')
FROM `Report`
GROUP BY Id ;
是否有多个具有相同ID的行<代码>分组< /代码>用于在列中组合具有相同值的多行。<代码>计数(星期一= =‘全部’然后1结束)< /CODE>因为您的<代码>或条件。认真考虑修改您的模式。数据库表不是电子表格。
COUNT(星期五)
将计算所有非空值。空字符串不是NULL
,因此它会被计数。这不起作用。返回null。您可以在dbfiddle链接上尝试它@Bisoux@Bisoux,您的小提琴输入也不正确,请始终解释您的问题。@Fahmi小提琴输入有什么不正确之处。我想要的在问题中得到了清楚的解释。