1
我在嘗試創建一個從數據庫中選擇輪播的過程。最終返回所選廣告行並增加視圖值。MYSQL:在多行中選擇使用COUNT和SUM函數的問題
我目前工作的一部分應該從「廣告」表,其中「城市」給定的城市和「點」給定的地點名稱相符程度
- 牽引結果。
- 添加枚舉結果行的附加「num」列。
- 從這些結果中,選擇了「NUM」列匹配SUM行(「若干意見」)%COUNT(ID)
這應該允許,只要我增加了我來顯示旋轉廣告當廣告最終選擇的觀點列,並返回
我目前工作的代碼是....
SET @t1=-1;
SELECT *
FROM (SELECT @t1 := @t1+1 AS num, ads.*
FROM ads
WHERE city = 'Maitland'
AND spot = 'home-banner'
ORDER BY id ASC) dt
WHERE dt.num = SUM(dt.views) % COUNT(dt.id);
...不過我有和與計數功能的問題。我無法使用組功能錯誤。我也嘗試將函數移動到子查詢中,但由於某些原因,這會導致子查詢僅返回一個結果。子查詢
num id spot city views
0 1 home-banner Maitland 0
1 2 home-banner Maitland 2
2 3 home-banner Maitland 0
3 4 home-banner Maitland 0
4 5 home-banner Maitland 0
5 6 home-banner Maitland 0
謝謝,但不會這個計算的看法模量和計算整個廣告表,子查詢的不結果?我只關心匹配城市和現場的結果。我想我可以重複WHERE子句,但是這不是明智的雙重性能表現嗎? – christian 2012-03-26 01:29:14
你說得對,我錯過了WHERE子句。是的,這將需要更長的時間,但這是我能想到的唯一方法:(你也可以創建一個臨時表並存儲所有當前的城市和現場數據,然後查詢該表以獲得'sum'和'count' – 2012-03-26 01:38:18
好的,希望在實踐中不會太差,感謝臨時表的建議,也許這將是一條更好的路線。最終,我將爲同一個城市拉動多個廣告位(10個左右)。 – christian 2012-03-26 01:41:49