Mysql统计出现次数

标签 mysql database

假设我们有以下数据表:

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/

相关文章:

php - 以正确的顺序从 mySQL 数据库中排序条目 - 变音符在字符 "Z"之后

mysql select not 不起作用

mysql - 还返回过去 12 个月 mysql 中具有空值的空月份

mysql - Ruby on Rails 表名 : what's permitted?

mysql - 将两个复杂的 SQL 查询合并为一个

php - 同时将数据添加到多个数据库

sql-server - 使用从具有 XML 批量格式文件的 .csv 文件插入 Openrowset 创建临时表

php - MySQL 查询 MATCH 和 AGAINST 挂起

mysql - 子查询或自连接查询 对于 mysql 表,哪个像递归函数一样工作?

mysql - SQL 中同一列中多个值的条件