Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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,我需要提出一个问题:我已经这样做了: CREATE TABLE IF NOT EXISTS `usuarios` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user1` varchar(255) DEFAULT NULL, `user2` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

我需要提出一个问题:我已经这样做了:

CREATE TABLE IF NOT EXISTS `usuarios` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user1` varchar(255) DEFAULT NULL, `user2` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; INSERT INTO `usuarios` (`id`, `user1`, `user2`) VALUES (1, 'pepe', NULL), (2, 'pepe', 'juan'), (3, 'juan', NULL), (4, 'juan', NULL), (5, 'juan', 'pepe'), (6, NULL, 'pepe'), (7, 'pepe', 'juan'); 但结果是:

SELECT `user1`, COUNT(`id`) AS Total FROM usuarios WHERE (`user1` is not null) GROUP BY `user1` UNION SELECT `user2`, COUNT(`id`) AS Total FROM usuarios WHERE (`user2` is not null) GROUP BY `user2` 我需要删除重复的名称,将总数相加,结果如下:

user1 total juan 3 pepe 3 juan 2 pepe 2
或者,如果你的代码更少

user1 total juan 5 pepe 5
从查询中选择user1,SUMtotal这里x GROUP BY user1??
SELECT user,COUNT(*) FROM
     (
       SELECT user1 user FROM usuarios
       UNION ALL
       SELECT user2 FROM usuarios
     ) x
 WHERE user IS NOT NULL
 GROUP 
    BY user;