簡體   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