Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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/82.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多重计数和选择_Mysql_Sql - Fatal编程技术网

Mysql多重计数和选择

Mysql多重计数和选择,mysql,sql,Mysql,Sql,嗨,伙计们,我正在为特定的ID计算特定的项目 数据库结果 name remarks joseph greggory On time joseph greggory On time lara joy On time lara joy Absent Mark Joben On time Mark Joben

嗨,伙计们,我正在为特定的ID计算特定的项目

数据库结果

name                      remarks
joseph greggory           On time
joseph greggory           On time
lara joy                  On time
lara joy                  Absent
Mark Joben                On time
Mark Joben                Absent
Isnaira Lyn               Absent
Isnaira Lyn               Absent
结果应该是

name                  On time         Late       Absent
joseph Greggory         2              0            0
Lara Joy                1              0            1
Mark Joben              1              0            1
Isnaira Lyn             0              0            2
提前谢谢你们

SELECT  name,
        SUM(CASE WHEN remarks = 'On time' THEN 1 ELSE 0 END) `On time`,
        SUM(CASE WHEN remarks = 'Late' THEN 1 ELSE 0 END) `Late`,
        SUM(CASE WHEN remarks = 'Absent' THEN 1 ELSE 0 END) `Absent`  
FROM    TableName
GROUP   BY name
    • 你可以试试这个

      select name,
             count(case when remarks = 'On time' then 1 end) "On time",
             count(case when remarks = 'Late' then 1 end) "Remarks",
             count(case when remarks = 'Absent' then 1 end) "Absent"
      from table1
      group by name;
      

      您可以尝试以下方法:

      SELECT  name,
              COUNT(IF(remarks = 'On time', 1, NULL)) `On time`,
              COUNT(IF(remarks = 'Late', 1, NULL)) `Late`,
              COUNT(IF(remarks = 'Absent', 1, NULL)) `Absent`  
      FROM    tbl
      GROUP   BY name
      

      这里没有提供足够的信息来回答这个问题。什么疑问?桌子的结构是什么?如果您可以编辑您的问题,为清晰起见,请将其标记为版主审阅。