注意:この質問には、「程度」についてのあいまいな概念があります。そして、私はすでに私の答えを持っています。
最近、私は次のような質問に苦労しています。プログラミング言語を使用して関数を作成することはできません。RAWSQLのみを使用してください。
2つの列を含むテーブルがあるとしarticles
ます:article_id
とtag_name
article_id | tag_name
---------------------------
1 C++
1 java
1 python
2 ruby
2 js
3 ruby
4 java
4 python
そして、次のような構造を持つ「tag_relations」という名前の空のテーブル。
tag1 | tag2 | degree
-----------------------------------
今、質問が来ます:
- 「RAWSQL」を記述して、最初のテーブルの内容に従ってテーブル「tag_relations」に値を書き込みます。
与えられたデータについて、出力は次のようになります(程度がわからないので、質問にはそれについて言及されていないので、GordonLinoffとJonathanLefflerの両方の回答が正しいです。):
tag1 | tag2 | degree
-----------------------------------
java C++ 2
java python 4
ruby js 2
更新された追加情報
注1.ここで、「程度」は質問によって説明されていません。しかし、それは2つのタグ間の関係の尺度だと思います。'java'と'C++'には値があるため、次のようになります。
article_id | tag_name
---------------------------
1 C++
1 java
したがって、次数= 2
および「java」および「python」の場合
article_id | tag_name
---------------------------
1 java
1 python
4 java
4 python
したがって、次数= 4
注2:
「python」と「C ++」の度数のレコードはありません(つまり、この質問はそのような場合を参照していませんdegree < 2
)(編集者による注:このコメントは、出力にC++とJavaを含めることと矛盾しています。 )。
私はこの質問に1日を費やし、SQLに関する知識を確認しましたが、変数を格納する方法やレコードをループする方法がわかりません。
どんなアイデアでも大歓迎です!