2017-04-12 28 views
0

我有一些問題在MySQL中找到這個解決方案。我想創建一個查詢,可以算的時間連續兩個不同的值已經提到,在不同的列相同的值數。通過其他列找到同一行上的SQL連接

更具體地說,我想找到的兩項三次發明人對專利一樣一起工作的數量。我在Excel中手動創建了輸出,但是在SQL代碼中沒有解決方案。

我的表是下面的一個:

Patent  Inventor 
04412478 D0456998-2 
04926296 D0456998-2 
05597593 D0456998-1 
06267663 07225494-3 
06299015 07225494-3 
06299015 D0456998-1 
06301919 07225494-3 
06301919 D0456998-1 
06311837 D0456998-1 
06311837 D0456998-2 
06360395 07225494-3 
06360395 D0456998-1 
06360395 D0456998-2 
06371294 07225494-3 
06371294 D0456998-1 
06371294 D0456998-2 
06546585 D0456998-1 
06546585 D0456998-2 
06663482 07225494-3 
06988292 06245813-3 
06988292 06877638-0 
D0437469 07225494-3 
D0465088 07225494-3 
D0465088 D0456998-1 
D0465088 D0456998-2 

這則是查詢的輸出:

Inventor 1 Inventor 2 Collaborations 
06245813-3 06877638-0 1 
07225494-3 D0456998-1 5 
07225494-3 D0456998-2 3 
D0456998-1 D0456998-2 5 

我將如何解決這個問題?將不勝感激任何建議或幫助!

+0

你將加入表本身。仍在掙扎?見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Strawberry

+0

@Strawberry幾乎沒有。我現在爲止已經走到這一步:https://pastebin.com/PpkgBqL3我只需要在列1和2。任何想法在這裏過濾掉重複的? – Philip

回答

0
SELECT x.inventor inventor1 
    , y.inventor inventor2 
    , COUNT(*) total 
    FROM my_table x 
    JOIN my_table y 
    ON y.patent = x.patent 
    AND y.inventor < x.inventor 
GROUP 
    BY x.inventor 
    , y.inventor; 
+0

啊完美!那是我失蹤的那個'<'號。謝謝您的幫助! – Philip

+0

...除了查詢各地! – Strawberry

相關問題