Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按行id分组的值计数_Mysql_Sql_Group By - Fatal编程技术网

Mysql 按行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分组。因此输出应该如下所示:

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小提琴输入有什么不正确之处。我想要的在问题中得到了清楚的解释。