Подсчет отношений между двумя столбцами в SQL-сервере

Доброе утро, у меня есть два столбца в студии sql, и мне нужно посчитать отношения между элементами одного столбца и другого. Проблема в том, что считается только в «одном направлении», и я хочу знать оба. Может быть, будет проще, если я покажу вам на простом примере. Я использую SQL-сервер.

Это исходная таблица:

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

Любое предложение будет очень приветствоваться! Заранее спасибо!

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
141
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Большинство баз данных поддерживают 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 выражения.

Другие вопросы по теме