我想計算公司之間有多少共同專案,例如:
| 公司 | 參與 |
|---|---|
| 蘋果 | 專案一 |
| 微軟 | 專案一 |
| 特斯拉 | 專案 2 |
| 蘋果 | 專案 2 |
| 微軟 | 專案 2 |
SQL中是否有一種簡單的方法可以做到這一點?有這樣的輸出?
| 蘋果 | 微軟 | 特斯拉 | |
|---|---|---|---|
| 微軟 | 2 | 1 | |
| 特斯拉 | 1 | 1 | |
| 蘋果 | 2 | 1 |
uj5u.com熱心網友回復:
有一種簡單的方法,但是 - 輸出并不完全符合您的要求。它顯示了常見專案的對和數量(cnt列):
SQL> select a.company, b.company, count(distinct b.participation) cnt
2 from project a join project b on a.company < b.company
3 group by a.company, b.company;
COMPANY COMPANY CNT
--------- --------- ----------
Apple Tesla 1
Apple Microsoft 2
Microsoft Tesla 1
SQL>
uj5u.com熱心網友回復:
可以在資料透視的源查詢中進行自聯接。
SELECT * FROM ( SELECT t1.Company , t2.Company AS Company2 , COUNT(t1.Participation) AS Participations FROM CompanyProjectParticipations t1 JOIN CompanyProjectParticipations t2 ON t2.Participation = t1.Participation AND t2.Company != t1.Company GROUP BY t1.Company, t2.Company ) Src PIVOT ( SUM(Participations) FOR Company2 IN ([Apple], [Microsoft], [Tesla]) ) Pvt ORDER BY Company;
公司 蘋果 微軟 特斯拉 蘋果 空值 2 1 微軟 2 空值 1 特斯拉 1 1 空值
在這里測驗db<>fiddle
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/430077.html
上一篇:是否可以從SQL存盤程序執行DatabricksNotebooks
下一篇:選擇到臨時表
