繁体   English   中英

mysql组并计数两列

[英]mysql group and count two columns

我不知道如何在一个表的两列中对名称进行分组和计数。 我的桌子的结构是这样的:

+------+-------------------+
| user | friend1 | friend2 |
+------+---------+---------+
|user1 | Adam    | Filip   | 
|user2 | Boris   | Norbert |
|user3 | Filip   | Carol   |
|user4 | Carol   | Filip   |
|user5 | Boris   | Patricia|
+------+---------+---------+

我想得到的结果是:

+----------+---+
| Filip    | 3 |
| Boris    | 2 |
| Carol    | 2 |
| Adam     | 1 |
| Norbert  | 1 |
| Patricia | 1 |
+----------+---+

按计数排序。

我尝试过这样的事情:

SELECT friend1 AS friends, friend2 AS friends, COUNT(friends) AS friedscount FROM table GROUP BY friends ORDER BY friedscount DESC

首先使用UNION ALL合并行,以在子查询中保留重复项,然后计数

SELECT  friend, COUNT(*) friedscount 
FROM
        (
            SELECT  friend1 AS friend FROM TableName UNION ALL
            SELECT  friend2 AS friend FROM TableName
        ) a
GROUP   BY  friend
ORDER BY friedscount DESC

这是一个演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM