請幫忙寫一個將整理數據的SQL腳本。
一個關鍵的難點 - 需要創建一個額外的列進行排序。
我試圖描述儘可能詳細的情況。
帶查詢的SQL查詢
讓我們開始吧。有以下形式的表:
我們會在收到用戶ID和返回數據,只有那些沒有誰他,但也有其他人。
下一步:按人工創建的列進行排序。
接下來,我會一步一步來。
那麼我的意思是人爲的列:
這一列將包含估計之間的差異。所以要得到它 - 您需要先執行一些操作:
根據設置用戶和其他用戶的信息來計算評估差異,並獲得平均分數。
下面的兩張圖片顯示了相同的數據,然後是計算本身,在我看來 - 這很簡單。
計算此列如下:
User with 2nd id:
1: 5 - 1 = 4;
2: 2 - 9 = -7;
3: next data what is in user 1 - absent in user 2, and we ease pass it;
User with 3rd id:
1: 3 - 1 = 2;
2: the next data's is absent in user with 3rt id;
3: 8 – 9 = -1;
4: 6 – 2 = 4;
5: passed;
End in the end:
User_2 will have new mark = -1.5
User_3 will have new mark = 1.66666
而在最後,我需要回到表:
但是這還不是全部。通常情況下,數據將被複制,我希望從所獲得的數據中獲得平均結果。請看下面的例子:
這是結束。我真的需要你的幫助,專家。我自己教SQL代碼,但這對我來說很困難。
有做腳本如下的想法:
SELECT d.data, (d.mark + myCount(d.user, 1)) newOrder
FROM info d
WHERE -- data from user_1 NOT equal data from other users
ORDER BY newOrder;
但腳本將執行大量的時間,因爲它使用其自身的功能,可以用做查詢到每個用戶,而不是記錄。我希望有人能夠應付這個任務。
類似的方法來我的想法,但我正在做一個自我連接的原則。 – DRapp