Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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 使用计数(*)和多个GROUP BY的SQL SELECT请求_Mysql_Sql_Count_Group By - Fatal编程技术网

Mysql 使用计数(*)和多个GROUP BY的SQL SELECT请求

Mysql 使用计数(*)和多个GROUP BY的SQL SELECT请求,mysql,sql,count,group-by,Mysql,Sql,Count,Group By,我目前正在实习,我必须创建一个缺少的视图,这会妨碍网站完美工作 此视图必须包含多个信息,但还必须包含每个耦合状态/进程的行数,如下所示: +----------------+---------+----------+-----------+-----------+--------+ | status | process | project | idprocess | idproject | number | +----------------+---------+----

我目前正在实习,我必须创建一个缺少的视图,这会妨碍网站完美工作

此视图必须包含多个信息,但还必须包含每个耦合状态/进程的行数,如下所示:

 +----------------+---------+----------+-----------+-----------+--------+
 | status         | process | project  | idprocess | idproject | number |
 +----------------+---------+----------+-----------+-----------+--------+
 | Not applicable | AP      | tms-data |        17 |         2 |    432 |
 | Not applicable | AP+51   | tms-data |        18 |         2 |    432 |
 | Not applicable | AR      | tms-data |        19 |         2 |    432 |
 | Realized       | AP      | tms-data |        17 |         2 |    432 |
 | Realized       | AP+51   | tms-data |        18 |         2 |    432 |
 | Realized       | AR      | tms-data |        19 |         2 |    432 |
 | Safety         | AP      | tms-data |        17 |         2 |    432 |
 | Safety         | AP+51   | tms-data |        18 |         2 |    432 |
 | Safety         | AR      | tms-data |        19 |         2 |    432 |
 | Ticket         | AP      | tms-data |        17 |         2 |    432 |
 | Ticket         | AP+51   | tms-data |        18 |         2 |    432 |
 | Ticket         | AR      | tms-data |        19 |         2 |    432 |
 | To be designed | AP      | tms-data |        17 |         2 |    432 |
 | To be designed | AP+51   | tms-data |        18 |         2 |    432 |
 | To be designed | AR      | tms-data |        19 |         2 |    432 |
 | Validated      | AP      | tms-data |        17 |         2 |    432 |
 | Validated      | AP+51   | tms-data |        18 |         2 |    432 |
 | Validated      | AR      | tms-data |        19 |         2 |    432 |
 +----------------+---------+----------+-----------+-----------+--------+
 18 rows in set (0.03 sec)
我正在使用MySQL。我不明白为什么这样算数,有什么想法吗

以下是我到目前为止一直在使用的脚本:

 SELECT alstom_status.name AS status,
        alstom_process.name AS process,
        alstom_project.name AS project,
        alstom_process.idprocess AS idprocess,
        alstom_project.idproject AS idproject,
        count(*) AS number
 FROM alstom_rule INNER JOIN alstom_status ON idstatus
                  INNER JOIN alstom_project ON idproject
                  INNER JOIN alstom_process ON idprocess
 GROUP BY alstom_status.name, alstom_process.name
 ORDER BY process;
您可以按阿尔斯通公司状态使用集团名称、阿尔斯通公司流程名称、阿尔斯通公司项目名称、阿尔斯通公司流程名称、阿尔斯通公司流程名称、阿尔斯通公司流程名称、阿尔斯通公司项目名称


您可以使用group by alstom_status.name、alstom_process.name、alstom_project.name、alstom_process.Idproces、alstom_project.idproject

您需要5个group by而不是2我相信您的group by子句看起来是正确的,但您不应该选择列,除非它们也出现在group by子句中,或者在聚合函数中,比如COUNT,你可能是对的。我们通常会说在y上连接y。some_column=x。some_column或使用some连接y_column@Strawberry是的,事实上我通常不精确,因为在我自己的表中,我更喜欢为不同表的相同列指定相同的名称,但是这里不是idstatus在表规则中命名为status的情况您需要5个group BY而不是2我相信您的group BY子句看起来是正确的,但是您不应该选择列,除非它们也出现在group BY子句中,或者在聚合函数中,比如COUNT,你可能是对的。我们通常会说在y上连接y。some_column=x。some_column或使用some连接y_column@Strawberry是的,事实上我通常不精确,因为在我自己的表中,我更喜欢为不同表的相同列指定相同的名称,但在这里,idstatus在表规则中被命名为status的情况并非如此
This works always for me !

SELECT alstom_status.name AS status,
           alstom_process.name AS process,
           alstom_project.name AS project,
           alstom_process.idprocess AS idprocess,
           alstom_project.idproject AS idproject,
           count(*) AS number
    FROM alstom_rule INNER JOIN alstom_status ON idstatus
                     INNER JOIN alstom_project ON idproject
                     INNER JOIN alstom_process ON idprocess
    GROUP BY status, process,project,idprocess, idproject;