2012-12-06 14 views
0

我有這個表:自定義選擇,如果總和> X

TICKETID | PRICE | NUMBER 

所以每個ticketid,玩家可以支付的價格在每ticketid數。

所以,如果玩家願意支付$ 1,$ 3和4 $的數字22,23和24 ticketid 25,則該表將顯示如下:

TICKETID | PRICE | NUMBER 
25  | 1 | 22 
25  | 3 | 23 
25  | 4 | 24 

我想選擇一個總票價> 50的隨機票,以獲得獎品。

我也希望隨機化是公平的,當做這個抽籤時,每張票只有1個幻影率。如果我不使用DISTINCT或GROUPBY,那麼帶有10個號碼的ticketid比擁有2個號碼的票證更有可能被抽出。

我試過,但它不工作:

SELECT DISTINCT(ticketid),SUM(price) FROM table 
    WHERE SUM(price)>50 GROUP BY ticketid 

我得到錯誤信息GROUP BY的功能

無效使用

有人能幫忙嗎?

+0

如果你使用'組BY'你不需要'DISTINCT' – valex

+0

@valex - 正確的,但我想刪除幾個不同的,它仍然犯規幫助 – NVG

回答

1

你想要的是「HAVING」條款適用於任何可能的候選人記錄後,聚合已被處理。已應用THEN並且包含(或不包含)在最終結果集中。

SELECT 
     ticketid, 
     SUM(price) TotalPrice 
    FROM 
     table 
    group by 
     TicketID 
    HAVING 
     sum(price) > 50 
+0

HAVING的伎倆 – NVG