[英]Counting relations between two columns in SQL server
早上好,我在sql studio中有兩列,我需要計算一列與另一列之間的關系。 問題在於,似乎只是在朝着“一個方向”計數,我想兩者都知道。 如果在一個簡單的示例中向您展示,可能會更容易。 我正在使用SQL Server。
這是原始表:
Col1 Col2
3 1
3 2
3 2
4 4
4 5
4 6
3 2
2 3
2 3
如果我執行以下操作(基於count(concat)),它將得到以下結果。
select Col1, Col2, count(concat(Col1, Col2)) as weight
FROM test1
group by Col1, Col2
Col1 Col2 weight
3 1 1
3 2 3
2 3 2
4 4 1
4 5 1
4 6 1
但是,我想還計算兩個元素之間的關系,如果這是在一列或另一列中的話,則是獨立的。 因此,3-2(或2-3)之間的關系數為5。可以這樣做嗎?
3 2 5
任何建議將非常歡迎! 提前致謝!
大多數數據庫都支持least()
和greatest()
。 這使您可以執行以下操作:
select least(col1, col2) as col1, greatest(col1, col2) as col2,
count(*) as cnt
from t
group by least(col1, col2), greatest(col1, col2);
如果您的數據庫不支持這些方便的功能,則可以使用case
表達式來實現類似的邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.