[英]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.