MySQL-如何按两个字段分组并计数
我需要提出一个问题:我已经这样做了: 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 2MySQL-如何按两个字段分组并计数,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 ;
或者,如果你的代码更少 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;