假设我们有以下数据表:
A | B
_________
1 | 2
3 | 4
5 | 6
6 | 5
如果我想计算相同数字碰撞或位于同一行的次数该怎么办?因此,在上面的示例中,1-2 和 3-4 将返回计数 1,因为它们仅在同一行上一次,但 5-6 和 6-5 将返回值 2。
一个更现实的例子:认为这些数字是运动队的 ID,A 和 B 列确定主队和客队。 Ao 5 队和 6 队总共交手过 2 场比赛,先是 5 队作为东道主,然后是 6 队作为东道主。
那么我怎样才能在mysql中计算这些呢?
最佳答案
DROP TABLE IF EXISTS fixtures;
CREATE TABLE fixtures
(fixture_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,home INT NOT NULL
,away INT NOT NULL
);
INSERT INTO fixtures (home,away) VALUES (1,2),(3,4),(5,6),(6,5);
SELECT * FROM fixtures;
+------------+------+------+
| fixture_id | home | away |
+------------+------+------+
| 1 | 1 | 2 |
| 2 | 3 | 4 |
| 3 | 5 | 6 |
| 4 | 6 | 5 |
+------------+------+------+
SELECT LEAST(home,away) a,GREATEST(home,away) b, COUNT(*) ttl FROM fixtures GROUP BY a,b;
+---+---+-----+
| a | b | ttl |
+---+---+-----+
| 1 | 2 | 1 |
| 3 | 4 | 1 |
| 5 | 6 | 2 |
+---+---+-----+
关于Mysql统计出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16598114/