Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 计算id在两列中出现的次数_Sql_Postgresql - Fatal编程技术网

Sql 计算id在两列中出现的次数

Sql 计算id在两列中出现的次数,sql,postgresql,Sql,Postgresql,我有一个匹配和一个团队表格。这是一个例子。我在用Postgres 它们看起来像这样: matches table id_match | id_home | id_away | date_time ----------+---------+---------+--------------------- 1 | 1 | 2 | 2018-11-03 16:30:00 2 | 1 | 3 | 2019-11-

我有一个
匹配
和一个
团队
表格。这是一个例子。我在用Postgres

它们看起来像这样:

matches table

 id_match | id_home | id_away |      date_time
----------+---------+---------+---------------------
        1 |       1 |       2 | 2018-11-03 16:30:00
        2 |       1 |       3 | 2019-11-03 16:30:00
        3 |       2 |       3 | 2019-11-03 16:30:00
        4 |       3 |       1 | 2020-11-03 16:30:00

teams table

 id_team |      club      | shorthand
---------+----------------+-----------
       1 | Vinica         | VIN
       2 | Kolpa          | KOL
       3 | Crnomelj       | CRN
       4 | Klub Študentov | KBŠ
       5 | Zilje          | ZLJ
       6 | Preloka        | PRK
我正在尝试查询并加入这两个,以获得:

team name | total number of matches
----------+--------------------------
Vinica    | 3
Kolpa     | 2
Crnomelj  | 3

我发现最困难的一点是,
team id
可以出现在matches表的两列中。

您可以使用横向联接来取消数据绑定。然后加入并聚合:

select t.club, count(*)
from matches m cross join lateral
     (values (m.id_home), (m.id_away)
     ) v(id_team) join
     teams t
     on t.id_team = v.id_team
group by t.club;

是小提琴。

谢谢!真聪明!当它允许我回答时,我会接受。