我試圖得到一個表「加權得分」用一個公式是我設計的每個類型下面的模式返回:如何從sql查詢中獲取每種類型的「分數」列表?
最愛:用戶ID,drinkName
歷史:用戶ID,drinkName
飲:名稱,方向,類型
飲酒:IDNUM,用戶ID,密碼
讓歷史上每次喝值得0.666分和喜愛價值1 POI每次喝NT。
因此,每次可以說一個喝伏特加的飲料在歷史上出現0.666應該被添加到分子爲一個特定的用戶ID。並且爲伏特加總共收藏1分。 然後它應該除以用戶ID在收藏夾和歷史記錄中的總喝酒數量。
因此,舉例來說,我在歷史3個伏特加酒和收藏2,它應該是: (3(0.666)+2)/ 5
和查詢應該返回這對於所有的「類型」我有可用的最好的飲料。
我現在有這個疑問:
SELECT (
(SELECT COUNT(*)
FROM Drink D JOIN History H ON H.drinkName = D.name
WHERE type = 'vodka' AND userID = 'sai')
+
(((SELECT COUNT(*)
FROM Drink D JOIN Favorite F ON F.drinkName = D.name
WHERE type = 'vodka' AND userID = 'sai'))*0.666))
/
((SELECT COUNT(*) FROM History WHERE userID = 'sai')
+
(SELECT COUNT(*) FROM Favorite WHERE userID = 'sai'))
然而,對於每一個類型的飲料的特定類型的飲料,但不表這隻回報。
您標記MySQL和SQL服務器...哪個是真的? – dazedandconfused
對不起,這是偶然的,它唯一的mysql – user2981811
考慮提供適當的DDL(和/或一個sqlfiddle)與期望的結果集 – Strawberry