sql - 列出组合和它们在 SQL 中重复的次数
问题描述
我什至不确定如何描述这个问题,通常我有一个小表(在 SQL Server 2019 中)有 2 列,没有很多数据,它看起来像这样
MechanicID CarID
----------------------
1 2
1 3
2 1
2 3
4 1
4 2
4 3
现在的想法是(最好使用 SELECT,如果 SELECT 不可能,可能是存储过程?)检查某种汽车组合发生了多少次。
基本上,它列出了一起维修的汽车组合以及维修这些组合的机械师数量。只有那些存在的组合才会出现。
结果应该是:
Car combination Number of occurrences
---------------------------------------------
1&2 1
1&3 2
2&3 2
所以机械师 1 维修了汽车 2&3,这个组合也被机械师 4 维修了,所以出现的次数是 2。
帮助将不胜感激
解决方案
使用自联接和聚合:
select t1.carid, t2.carid, count(*)
from t t1 join
t t2
on t1.MechanicID = t2.MechanicID and
t1.carid < t2.carid
group by t1.carid, t2.carid
推荐阅读
- .net - Copy selected rows from a DataGridView to another, including Image Column
- javascript - How to store a function value into a variable nodejs server get-folder-size
- postgresql - 在 Postgres 中清理 Spring Batch 表的策略
- java - 不能在带有 String.replaceFirst() 或 String.replaceAll() 的替换字符串中使用反斜杠
- arrays - 在 MongoDB 中存储数组或字符串是更好的做法吗?
- c# - 嵌套查询不适用于实体框架绑定转发器控件
- android - Save API data in Room database in Android
- java - 如何在 Java (Eclipse) 中对角检查二维字符数组中的字符串
- swift - UITableView 重叠一切
- java - appcompat 活动崩溃 API 28