簡體   English   中英

計算SQL Server中兩列之間的關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM