所以可以说我有
| id | value |
--------------
| 1 | A |
| 2 | B |
| 3 | B |
| 4 | A |
| 5 | A |
然后运行以下SQL语句
SELECT value, COUNT(*) AS `num` FROM test2 GROUP BY value
我会得到 A: 3 和 B: 2
很好,但是如果我想合并多列怎么办
| id | value | Value2 | Value 3|
---------------------------------
| 1 | A | A | A |
| 2 | B | A | B |
| 3 | B | B | B |
| 4 | A | A | A |
| 5 | A | B | A |
在上面的 A:9 B:6 中。目前我可以只运行上面的语句3次,然后在php端添加值。但我想可能有一个巧妙的小技巧可以在一条语句中完成所有工作。
使用将三列合并为单列Union all
然后在外部查询中找到每个组的计数。尝试这个。
SELECT value,
Count(value)
FROM (SELECT value AS value FROM test2
UNION ALL
SELECT value2 FROM test2
UNION ALL
SELECT value3 FROM test2)a
GROUP BY value
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)